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