簡體   English   中英

具有大數據的Crystal Reports需要很長時間才能加載

[英]Crystal Reports with large data takes long time to load

我目前正在將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種填充方法,但是我不確定如何解決該問題。 任何幫助是極大的贊賞。

試試這個代碼,我在c#和oracle數據庫中使用它,但是我肯定它可以幫助你:

        CRAXDRT.DatabaseTable T;

        for (int i = 1; i <= report1.Database.Tables.Count; i++)
        {
            T = (CRAXDRT.DatabaseTable)report1.Database.Tables[i];
            CRAXDRT.ConnectionProperties cps = T.ConnectionProperties;
            CRAXDRT.ConnectionProperty cp =
                (CRAXDRT.ConnectionProperty)cps["User ID"];
            cp.Value = "Username" ;
            cp = (CRAXDRT.ConnectionProperty)cps["Password"];
            cp.Value = "Password" ;
            cp = (CRAXDRT.ConnectionProperty)cps["Data Source"];
            cp.Value = "DataSource" ;
            T.SetLogOnInfo("DataSource", "", "Username", "Password");
        }

Crystal Reports在ADO.NET數據源中存在多個表的已知問題。 鏈接數據確實很慢。

為了解決這個問題,我們要做的就是在單個表(平面文件)中創建數據,然后報表就非常快。 他們永遠都遇到這個問題,並且對此沒有做任何事情,所以不要屏住呼吸,他們很快就會解決它。

看到此SAP ADO.NET數據源緩慢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM