現在、Windows アプリケーションを VB6 から VB.NET にアップグレードする作業を行っています。アプリケーションのコンポーネントの 1 つに Crystal Reports が含まれています。私はVBとCrystal Reports全般に非常に慣れていないので、助けが必要でした.
まず、正しいデータを取得するためのレポートを取得し、構文エラーはありませんが、多数のレコードを含むデータを取得しようとすると、ロードに非常に長い時間がかかります。元。クエリの 1 つに 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つの塗りつぶし方法が原因だと思いますが、その問題に対処する方法がわかりません。どんな助けでも大歓迎です。