5

我正在使用 Crystal Report,但收到错误消息:

The maximum report processing jobs limit configured by your system administrator has been reached

我搜索了stackoverflow并找到了2个主题:

  1. Crystal Reports 错误:最大报表处理作业限制
  2. Crystal Reports 异常:已达到系统管理员配置的最大报表处理作业限制

但是,当我按照主题 1 更改 PrintJobLimit =-1 时,错误仍然会发生。

当我做主题 2 时,我还没有测试,因为我的报告需要在页面之间导航。要导航,我必须在会话中保存报告:

    ReportDocument reportDocument = null;
    protected override void OnInit(EventArgs e)
    {
        if (IsPostBack && Session["reportDocument"] != null)
        {
            reportDocument = (ReportDocument)Session["reportDocument"];
            crvReport.ReportSource = reportDocument;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        reportDocument = new ReportDocument();
        Session["reportDocument"] = reportDocument;
        crvReport.ReportSource = reportDocument;

        reportDocument.Load(Server.MapPath("~/files/Users.rpt"));
        reportDocument.SetDatabaseLogon("******", "******", "*.*.*.*", "*****");
        reportDocument.VerifyDatabase();

        crvReport.DataBind();
    }

所以我无法在卸载时处理 reportDocument,因为 Session["reportDocument"] 更改为 null

    protected void crvReport_Unload(object sender, EventArgs e)
    {
        if (reportDocument != null)
        {
            reportDocument.Close();
            reportDocument.Dispose();
            reportDocument = null;
            GC.Collect();
        }
    }

那么,如何在报告中的页面之间导航,但我没有收到错误消息?

非常感谢

4

4 回答 4

2

我找到了这个链接Pdf 文件

所以,我不会关闭并处理 crvReport_Unload 中的文档,但是当我重定向到另一个页面时我会关闭并处理它。

//OnRedirect
ReportDocument reportDocument = (ReportDocument)Session["reportDocument"];
reportDocument.Close();
reportDocument.Dispose();
reportDocument = null;
GC.Collect();

并且错误仍然发生但不那么冒犯。

于 2012-09-04T03:01:57.567 回答
1

我在水晶报表 11.5 版中遇到了同样的问题。经过大量搜索后,我找到了不同的解决方案,例如“HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Report Application Server\InprocServer,上面写着增加打印作业限制等,但它们都不适合我。然后我只是处理掉我的reportDocument with clone,这就像一个魅力。就我而言,在打印/生成报告后,我这样做了

reportDocument.Close(); 
reportDocument.Clone(); 
reportDocument.Dispose(); 
reportDocument = null;
GC.Collect();
GC.WaitForPendingFinalizers();

希望这会帮助你。:)

于 2015-07-30T05:39:34.207 回答
0

There is No permanent solution. After changing Registry and Code, problem arise within few hours. Suggesting to change RDL or RDLC

于 2014-02-17T10:08:33.713 回答
0

早上,你有没有尝试过这里的任何东西:http: //social.msdn.microsoft.com/forums/en/vscrystalreports/thread/208525b2-94cd-4af6-9c5a-015e243b3092/

于 2012-08-24T11:23:14.080 回答