高分求助水晶报表11的问题

LOUIVE007 2009-06-17 02:15:05
各位好,

关于水晶报表达式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,有什么办法可以解决这问题, 请各位高手指点!!
...全文
35 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wai631 2009-06-18
  • 打赏
  • 举报
回复
MS SQL 应该不可以同时连两个DB吧。但是可以在程序里面处理

6,108

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧