Crystal Reports 已达到最大报告处理作业限制

问题描述 投票:0回答:4

我在 ASP.NET Web 表单应用程序中使用 Crystal Reports 13.5。我尝试将

Close()
Dispose()
调用放入
Page_Unload
方法中,但没有帮助。

75 份报告后,我开始收到错误:

已达到系统管理员配置的最大报告处理作业限制。

我应该购买 Business Object 的许可证吗?

c# asp.net webforms crystal-reports
4个回答
1
投票

它通过处理报告然后调用 GC.Collect() 对我有用。在我的例子中,仅仅处理对象是不够的。检查this了解完整详细信息。

编辑: 根据 Div 的评论,这是链接中的解决方案:

  • 加载报告
  • 分配给查看器控制
  • 在查看器控件中显示报告
  • 关闭查看器控制并卸载(完全)
  • 然后在任何查看器控制代码之外关闭/dispose/gc.collect

0
投票
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using CrystalDecisions;
using CrystalDecisions.CrystalReports;
using CrystalDecisions.CrystalReports.Engine;
 
namespace Test.Utilities
{
    public class ReportFactory
    {
        protected static Queue reportQueue = new Queue();
 
        protected static ReportClass CreateReport(Type reportClass)
        {
            object report = Activator.CreateInstance(reportClass);
            reportQueue.Enqueue(report);
            return (ReportClass)report;
        }
 
        public static ReportClass GetReport(Type reportClass)
        {
 
            //75 is my print job limit.
            if (reportQueue.Count > 75) ((ReportClass)reportQueue.Dequeue()).Dispose();
            return CreateReport(reportClass);
        }
    }
}

0
投票

为时已晚,但我找到了解决方案,但角度不同......

您可以直接生成PDF并在中显示。

通过这样做,您还可以在使用后关闭rd对象...


-1
投票

Crystal 打印引擎设计为默认打印作业限制为 75 个。一旦超过这个限制,上述问题就会开始出现。

通过更改注册表中的一个值,这个问题很容易解决:

HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Report Application Server\InprocServer

欲了解更多信息,请查看以下链接

http://scn.sap.com/community/crystal-reports-for-visual-studio/blog/2014/04/25/what-exactly-is-maximum-report-processing-job-limit-for-水晶报告

© www.soinside.com 2019 - 2024. All rights reserved.