【问题标题】:How to obtain number of pages in a Crystal Reports .NET report如何获取 Crystal Reports .NET 报表中的页数
【发布时间】:2013-04-02 15:40:18
【问题描述】:

我有一个 Web 应用程序,我在其中呈现一个或多个 Crystal Reports,然后将它们合并为一个 PDF。我想做的是从一个 CrystalDecisions.CrystalReports.Engine.ReportDocument 对象中获取页数,然后将该值设置为后续 ReportDocuments 中的参数,以便继续正确地进行页码编号。 ReportDocument 类是否公开了一种获取页数的方法?如果没有,还有其他方法吗?

我没有使用 Crystal Report Viewer。

我正在为 Visual Studio 2010 和 C# .NET 4 使用 CrystalReports。

【问题讨论】:

    标签: asp.net crystal-reports-2010


    【解决方案1】:

    我的解决方案是使用以下代码:

    reportDocument.FormatEngine.GetLastPageNumber(new CrystalDecisions.Shared.ReportPageRequestContext());
    

    Intellisense 不会获取 ReportDocument 的“FormatEngine”属性,因此您需要手动键入,然后 Intellisense 将显示“GetLastPageNumber”方法,您可以从那里开始。

    我以前见过这种解决方案,但由于缺乏 Intellisense 支持,我认为可能是我使用了错误版本的 Crystal Report 对象来利用“FormatEngine”属性。

    【讨论】:

    • 但是如果页面超过 200、1000 则此方法非常慢……非常非常慢……大约需要几分钟才能完成……为什么会这样?
    • @Gokul,您的报告中是否嵌入了许多子报告?另外,看看here。 Crystal Report 专家表示,这种方法“可能会减慢生成报告所需的时间,因为需要对整个报告进行处理、格式化等操作。”
    • 是的只有一个..基于分组和选择子记录..这是慢的实际原因吗?哦..但我又问了一个关于这个的问题..!链接here
    • @Gokul,从阅读您的另一篇文章来看,答案是肯定的,速度很慢很可能是由子报告引起的,如果在您的详细信息部分中,每次呈现该部分时都会从数据库中读取,这将是数千次。
    • 爱它你拯救我的一天谢谢
    【解决方案2】:
    CrystalDecisions 的

    TotalPageCount 属性将解决该问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多