高分求助水晶报表11的问题
各位好,
关于水晶报表达式11 + MS SQL SERVER 2000 的问题:
我用水晶报表通过PULL方式加载同一台服务器上多个不同DATABASE 实例时,始络只能连接到一个DATABASE, 如何实现让水晶报连接多个不同的DATABASE, PUSH 方式除外.
以下是我的部分代码:
On Error GoTo Err_Handle
Dim i As Short = 0
Dim crtableLogoninfo As New TableLogOnInfo
'Dim crtableLogoninfos As New TableLogOnInfos
Dim crConnectionInfo As New ConnectionInfo
Dim CrTables As Tables
Dim CrTable As Table
'Dim connection As IConnectionInfo
'Dim myTableLogOnInfos As TableLogOnInfos = myCrystalReportViewer.LogOnInfo
Dim crDoc As New ReportDocument
'define connection parameters
crConnectionInfo.ServerName = System.Configuration.ConfigurationManager.AppSettings("servername")
'crConnectionInfo.DatabaseName = System.Configuration.ConfigurationManager.AppSettings("dbname")
crConnectionInfo.UserID = System.Configuration.ConfigurationManager.AppSettings("username")
crConnectionInfo.Password = System.Configuration.ConfigurationManager.AppSettings("password")
crConnectionInfo.AllowCustomConnection = True
crConnectionInfo.Type = ConnectionInfoType.Query
crConnectionInfo.IntegratedSecurity = False
'crConnectionInfo.AllowCustomConnection =
'load report file
FrmReportView.Text = rptTitle
FrmReportView.crPreview.DisplayGroupTree = False
crDoc.Load(rptFile, OpenReportMethod.OpenReportByDefault)
FrmReportView.crPreview.ReportSource = crDoc
crDoc.SetDatabaseLogon(crConnectionInfo.UserID, crConnectionInfo.Password, crConnectionInfo.ServerName, crConnectionInfo.DatabaseName)
'FrmReportView.crPreview.LogOnInfo.Clear()
crDoc.SetDatabaseLogon(crConnectionInfo.UserID, crConnectionInfo.Password) ', crConnectionInfo.ServerName, "TRS") 'logon database TRS
CrTables = crDoc.Database.Tables
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
crtableLogoninfo.ConnectionInfo.DatabaseName = "TRS"
CrTable.ApplyLogOnInfo(crtableLogoninfo)
If UCase(CrTable.Name) = "EDPSTAFF" Then
Dim crLogStaffInfo As TableLogOnInfo = crtableLogoninfo.Clone
crLogStaffInfo.ConnectionInfo.DatabaseName = "ITD" 'SET DATABASE NAME for table EDPSTAFF
CrTable.ApplyLogOnInfo(crLogStaffInfo)
End If
If UCase(CrTable.Name) = "HEADCNT" Then
Dim crLogHeadCntInfo As TableLogOnInfo = crtableLogoninfo.Clone
crLogHeadCntInfo.ConnectionInfo.DatabaseName = "SHH" 'SET DATABASE NAME for table HEADCNT
CrTable.ApplyLogOnInfo(crLogHeadCntInfo)
End If
' FrmReportView.crPreview.LogOnInfo.Add(crtableLogoninfo)
Next
FrmReportView.crPreview.ReportSource = crDoc
'frmreportView.rptDoc.VerifyDatabase()
If paraFlag = True Then
For i = 1 To UBound(parameter)
FrmReportView.crPreview.ParameterFieldInfo.Insert(i, parameter(i))
Next
End If
If selectedFormula <> "" Then
FrmReportView.crPreview.SelectionFormula = selectedFormula
End If
FrmReportView.crPreview.Show()
FrmReportView.crPreview.ShowFirstPage()
FrmReportView.WindowState = FormWindowState.Maximized
FrmReportView.Show()
crtableLogoninfo = Nothing
'crtableLogoninfos = Nothing
crConnectionInfo = Nothing
crDoc = Nothing
Exit Sub
Err_Handle:
MsgBox(Err.Description, MsgBoxStyle.Critical)
'
''系统总会出现EDPSTAFF 或HEADCNT 这两TABLE 连接不上DB的情况,水晶报表会报错,错误信息是找不到EDPSTAFF TABLE.
'我认为水晶报表不能同时连接多个不同的DATABASE,有什么办法可以解决这问题, 请各位高手指点!!