再次询问登录信息

时间:2011-04-07 09:33:53

标签: vb.net visual-studio crystal-reports dataset

我使用水晶报告创建了一份报告。我为此使用了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

这在第一次加载时是可以的。当我在报表视图中单击打印按钮时,报表视图会询问登录信息。我怎么能适合这个

1 个答案:

答案 0 :(得分: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)