因此,我第一次尝试运行报告时遇到Crystal Reports问题,报告显示为空。报告显示各种分隔符,行,框等,但没有数据填写报告。我正在使用Visual Basic 6进行编码。我使用了大量继承的代码,处理实际Crystal Reports的代码是一个用于其他报表的文件,它工作正常。所以我确定问题出在我所做的事情上。
这是我到目前为止的代码:
Dim rs As ADODB.Recordset
Dim strRptFilePathTemp As String
Dim strRptFileName As String
Dim cSql As String
cSql = "SELECT * FROM TABLE1"
Set rs = DbConn.runStatement(cSql, "rs call", , , , , , , , , , True) 'gets a recordset based on the sql statement above
On Error GoTo ErrHandler
strRptFileName = "ReportName.rpt"
strRptFilePathTemp = App.Path
Screen.MousePointer = vbHourglass
Set frmcrystalreport.ReportRS = rs
DoEvents
frmcrystalreport.reportfile = strRptFilePathTemp & strRptFileName
frmcrystalreport.ReportTitle = _
frmCrystalReportsMainForm.GetRptTitle1("ReportTitle, ") & vbCrLf
gblStrReportFileNameLastRun = frmcrystalreport.reportfile
Screen.MousePointer = vbDefault
DoEvents
frmcrystalreport.Show vbModal
If Not frmcrystalreport.ReportRS Is Nothing Then
frmcrystalreport.ReportRS.Close
Set frmcrystalreport.ReportRS = Nothing
End If
Exit Sub
End If
End Sub
我已经尝试过使用DoEvents功能,看看它是否有帮助但是没有太多运气。在最初尝试运行报告失败后,一切正常。只要我不退出程序,一旦我通过该空白报告,它将打印出包含有效数据的报告。感谢你们给我的任何帮助。
答案 0 :(得分:0)
嗯,自从我使用VB6和CR以来已经有一段时间但是我记得你需要在设置观众报告源之前丢弃保存的数据
Report.DiscardSavedData
CRViewer1.ReportSource = Report
答案 1 :(得分:0)
在Crystal Reports中遇到问题之后,才发现问题。我不得不在文件菜单下的报告文件中关闭带有报告功能的保存数据。