Итак, у меня возникла проблема с 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, чтобы посмотреть, может ли это помочь, но мне не повезло с этим. Все работает нормально после этой первоначальной неудачной попытки запуска отчета. Пока я не выйду из программы, она распечатает отчет с действительными данными, как только я пропущу этот пустой отчет. Спасибо за любую помощь, ребята, вы можете дать мне.