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

时间:2015-09-07 11:54:48

标签: c# asp.net webforms crystal-reports

我在ASP.NET Web窗体应用程序中使用Crystal Reports 13.5。我尝试将Close()Dispose()调用放在Page_Unload方法中,但它没有帮助。

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

  

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

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

3 个答案:

答案 0 :(得分:1)

通过Disposing the report然后调用GC.Collect(),它对我有用。在我的情况下,仅处理对象是不够的。查看this以获取完整详情。

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

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

答案 1 :(得分:0)

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-crystal-reports

答案 2 :(得分:0)

    @Test
    public void testQuestionAndAnswersTest() {
        Question question = new Question();
        question.setDescription("How is the weather today?");

        question.addAnswerChoice(new AnswerChoice("Sunny"));
        question.addAnswerChoice(new AnswerChoice("Cloudy"));
        question.addAnswerChoice(new AnswerChoice("Rainy"));
        question.addAnswerChoice(new AnswerChoice("Windy"));
        question.addAnswerChoice(new AnswerChoice("Snowy"));

        //child entities persisted together
        entityManager.persist(question);


        Question searchedQuestion = entityManager.find(Question.class, question.getId());
        Assertions.assertNotNull(searchedQuestion);
        Assertions.assertNotNull(searchedQuestion.getId());
        Assertions.assertNotNull(searchedQuestion.getAnswerChoices());
        Assertions.assertEquals(5, searchedQuestion.getAnswerChoices().size());
        Set<AnswerChoice> answerChoices = searchedQuestion.getAnswerChoices();
        for (AnswerChoice answerChoice : answerChoices) {
            Assertions.assertNotNull(answerChoice.getId());
        }
    }