在水晶报告中使用刷新命令的问题


Dim logoninfo As TableLogOnInfo
Dim SaleInvPrint As New ReportDocument

SaleInvPrint.Load(My.Settings.CrystalReportLocation & "SalesInvoiceA5.rpt")
For Each tbcurrent As CrystalDecisions.CrystalReports.Engine.Table In SaleInvPrint.Database.Tables
logoninfo = tbcurrent.LogOnInfo()
logoninfo.ConnectionInfo.DatabaseName = LocalDataAccessCon.ConnectionString
'  logoninfo.ConnectionInfo.ServerName = "[server]"
' logoninfo.ConnectionInfo.UserID = "[user]"
' logoninfo.ConnectionInfo.Password = "[password]"
tbcurrent.ApplyLogOnInfo(logoninfo)
Next
SaleInvPrint.Refresh()
SaleInvPrint.PrintToPrinter(1, True, 0, 50)
当使用上面的代码时,我在最后一行得到以下错误:

CrystalDecisions.CrystalReports.Engine。DataSourceException: 'Error in File SalesInvoiceA5 13744_2344_{741BCC9A-4E81-4C98-8E3C-B5ECC6DAA5FA}.rpt:加载数据库信息失败。'

COMException: Error in File SalesInvoiceA5 13744_2344_{741BCC9A-4E81-4C98-8E3C-B5ECC6DAA5FA}.rpt:加载数据库信息失败。

奇怪的是,如果我删除SaleInvPrint.Refresh(),错误确实消失了但我得到一些旧副本而不是数据库里最新的那个!

哈立德.

Crystal rpt文件可以包含旧数据,如果报表设计者选择了'Save data with report '。所以你看到的是保存的数据。Refresh()方法会丢弃保存的数据。

把注意力集中在你试图连接数据源失败的原因上。

最新更新