0

現在、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つの塗りつぶし方法が原因だと思いますが、その問題に対処する方法がわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

0

Crystal Reports には、ADO.NET データソース内の複数のテーブルに関する既知の問題があります。データをリンクするのは本当に遅いです。

これを回避するために私たちがしなければならなかったことは、単一のテーブル (フラット ファイル) にデータを作成することでした。そうすれば、レポートは非​​常に高速になります。彼らはこの問題をずっと抱えていて、それについて何もしていないので、すぐに修正されると息を止めないでください.

このSAP ADO.NETデータソースを参照してください遅い

于 2013-10-21T14:48:12.527 に答える