我目前正在将 Windows 应用程序从 VB6 升级到 VB.NET。该应用程序的组件之一包括 Crystal Reports。我对 VB 和 Crystal Reports 非常陌生,所以我需要一些帮助。
首先让我说我得到了报告以提取正确的数据并且没有语法错误,但是当我尝试提取具有大量记录的数据时,加载需要很长时间。前任。其中一个查询包括返回的 16000+ 行,在 VB6 版本中需要约 1.5 秒,但在 .Net 版本中需要 18 分钟。我确信我可以做一些事情来提高报告的效率,但由于我没有足够地使用它,我需要帮助才能走上正确的轨道。当报告试图提取少量数据时,我没有任何问题。
为了生成报告,我使用了数据集,我认为这是减慢加载时间的部分。下面是我设置 SQL 查询的方式和设置数据集的方式的示例。
sSQLQry = “SELECT [COLUMN_NAMES] from Table1, Table2, Table3, Table4 WHERE [condition] ORDERBY col1,col2,col3 ASC
cnn = New SqlConnection(connectionString)
cnn.Open()
Dim dscmd As New SqlDataAdapter(sSQLQry, cnn)
Dim ds As New my_dataset
dscmd.Fill(ds, "table1")
dscmd.Fill(ds, "table2")
dscmd.Fill(ds, "table3")
dscmd.Fill(ds, "table4")
crystalreport1.SetDataSource(ds)
CrystalReportViewer1.Height = Me.Height
CrystalReportViewer1.Width = Me.Width
CrystalReportViewer1.Show()
CrystalReportViewer1.ReportSource = crystalreport1
现在我认为它之所以慢是因为 4 种填充方法,但我不知道如何解决这个问题。任何帮助是极大的赞赏。