【问题标题】:Crystal Reports with large data takes long time to load具有大数据的 Crystal Reports 需要很长时间才能加载
【发布时间】:2013-10-20 20:56:36
【问题描述】:

我目前正在将 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# vb.net vb6 crystal-reports crystal-reports-2008


    【解决方案1】:

    试试这个代码,我在 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");
            }
    

    【讨论】:

      【解决方案2】:

      Crystal Reports 在 ADO.NET 数据源中存在多个表的已知问题。链接数据真的很慢。

      我们必须做的是在单个表(平面文件)中创建数据,然后生成非常快的报告。他们一直有这个问题并且没有做任何事情,所以不要屏住呼吸,他们会很快解决这个问题。

      看到这个SAP ADO.NET Datasource Slow

      【讨论】:

        猜你喜欢
        • 2019-12-20
        • 2012-06-24
        • 1970-01-01
        • 1970-01-01
        • 2021-07-19
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        相关资源
        最近更新 更多