Crystal Reports似乎每组有80个部分限制

时间:2009-09-23 22:34:14

标签: c++ crystal-reports c++builder

Crystal Reports似乎每组限制为80个部分

Environment:
  Microsoft Windows XP
  Professional
  Version 2002
  Service Pack 3

  Crystal Reports XI (Release 1)
  Calling the Crystal Reports Engine crpe32.dll version 11.0.0.1445
  Via Crystal VCL 11 libraries
  Via Borland C++Builder 6 Enterprise Suite Version 6.0 (Build 10.166)

我发现该报告包含86个部分(在一个组中) 使用在的Crystal Reports XI exe运行得很好 C:\ Program Files \ Business Objects \ Crystal Reports 11 \ crw32.exe

然而,当我从编译的可执行文件中调用相同的报表时 使用Borland C ++ Builder - > VCL电话 - > CRPE32.DLL 它不打印。

我花了很多令人沮丧的时间来调试exe。 我使用了分而治之的调试方法并设计出来 一个状态机,在记录每个时都会执行以下操作 沿途的状态:

  1. 通过LoadEngine加载引擎;
  2. 通过OpenEngine打开引擎;
  3. 通过OpenJob打开PrintJob;
  4. 通过CloseJob关闭PrintJob;
  5. 通过CloseEngine关闭引擎;
  6. 通过UnloadEngine卸载引擎;
  7. 我发现该报告在OpenJob中出错了 Crpe1->Status()状态crsJobFailed Crpe1->LastErrorNumber()"505: No print destination specified"

    以下是播放的剧本(我将其输出到文件中):

      LoadEngine() started
      LoadEngine() completed. The handle to CRPE32.DLL is: 728956928
      EngineOpen() started
      EngineOpen() completed. Engine is already opened.
      JobIsOpen() started.
      JobIsOpen() completed. The PrintJob is open.
      Execute() started
      Status() crsJobFailed
      Execute() failed.
      Error state.
      LastErrorNumber 505: No print destination specified.
      C:\REPORTS\ProblemReport.rpt
      Please first call PEOutputToWindow or PEOutputToPrinter!
      Execute <PEStartPrintJob>
      Finished state.
    

    返回报告:

    从报告中删除一些/*comment*/部分会带来数量 部分下降到78,瞧...报告打印出来就好了 在Borland C ++ Builder上编译的可执行文件 - &gt; VCL电话 - &gt; CRPE32.DLL

    我的结论: 避免在一个组中创建超过80个部分。

    作为解决方法,您可以添加其他组 相同的GROUP BY列(基本上,重复 同一组)并创建所需的所有额外部分 在新组(重复组)中。

    这相当于编写以下SQL

    SELECT 
       column1
       column1
    FROM table
    GROUP BY 
       column1,
       column1;
    

    还有其他人有这个问题吗? 如果是,您设计了什么解决方案?

0 个答案:

没有答案