2011-04-07 55 views
1

我使用水晶报告创建了报告。我为此使用了ado.net连接。我创建了一个数据集并加入了报告。再次询问登录信息

在编码教职员

Dim Rpt As New ReportDocument 
Dim ClientAdp As New ClientTableAdapters.ClientsTableAdapter 
Dim ClientDt As New Client.ClientsDataTable 

ClientAdp.Connection = New SqlConnection(ConfigurationManager.ConnectionStrings("CurrentConnection").ConnectionString) 
ClientAdp.Fill(ClientDt) 

Rpt.Load(Server.MapPath(ADONET_REPORT_FILE)) 
Rpt.SetDataSource(CType(ClientDt, DataTable)) 
Rpt.SetDatabaseLogon("123", "123") 
ReportViewer.ReportSource = Rpt 

这是第一次加载时间确定。当我在报告视图中单击打印按钮时,报告视图询问登录信息。我该如何适应这个问题

回答

0

我认为你需要为报告中的每个表格设置TableLogOnInfo而不仅仅是报告。

Dim logOnInfo As TableLogOnInfo 
For Each tbCurrent As CrystalDecisions.CrystalReports.Engine.Table In Rpt.Database.Tables 
    logOnInfo = tbCurrent.LogOnInfo 
    logOnInfo.ConnectionInfo.DatabaseName = "MyDatabaseName" 
    logOnInfo.ConnectionInfo.UserID = "UserId" 
    logOnInfo.ConnectionInfo.Password = "secretpassword" 
    logOnInfo.ConnectionInfo.ServerName = "SQLServer" 
    logOnInfo.ConnectionInfo.Type = ConnectionInfoType.SQL 
    tbCurrent.ApplyLogOnInfo(logOnInfo) 
Next 

我有a blog post here详述此完全(这是写在C#中,但同样的原则也适用于VB.NET)

+0

这是第一次负荷确定。当显示报告时,我点击报告按钮。在这种情况下,报告视图询问登录信息。 – zanhtet 2011-04-07 09:55:26