如何在不更改水晶报表中新页的情况下限制每组的行数

时间:2018-08-12 06:39:35

标签: c# crystal-reports report

是否有任何方法可以限制每组的行数而不更改Crystal Report 2008中的新页面。我这样做的原因是由于客户对打印机EPSON LQ 300(点矩阵)的使用,如果对我的版面进行颠覆,总是会横向打印。景观。因为他们需要记录,所以总是在1页(信纸大小)中打印2组,每组必须显示5条记录。示例:

但是,在CR2008中,如果您从“组”部分专家设置每个组的行,则肯定会更改为新页面,但是我不希望它更改为新页面。有想法吗?

在一页中(字母大小):

Group Name: Customer-ABC

NO INVOICE AMOUNT

1) INV001 USD100

2) INV002 USD100

3) INV003 USD100

4) INV004 USD100

5) INV005 USD100

Group Name: Customer-ABC

NO INVOICE AMOUNT

6) INV006 USD100

7) INV007 USD100

8) INV008 USD100

9) INV009 USD100

10) INV010 USD100

1 个答案:

答案 0 :(得分:0)

我不认为有直接的方法可以通过组来完成此操作……但是您可以采用一种变通方法并将其设置为每组10条/每页5条记录。为了说明起见,我假设以下内容:

一个报告中可能有多个客户的发票数据。每页将在两个小节中每页最多显示十条记录。例如,如果给定客户的发票少于10张,则第一部分显示5张发票,第二部分显示4张,下一个客户的发票数据将从头开始的下一页。

与此有关:

您可以通过创建手动运行总计来跟踪每个客户组的记录数来完成此操作。您将隐藏实际的组标题,在详细信息行中打印组标题名称,然后使用该记录计数以及 remainder()公式有条件地在详细信息中隐藏或显示组名称,在特定的时间间隔内创建新页面,等等。您还将使用 recordnumber -这将为您提供整个报告中实际的当前记录数,以每个新客户的单独区域显示。

步骤概述:

  • 创建一个公式(我们将其称为recordCount)来跟踪每个客户端组中的行数,并根据组的更改重置计数(这将是手动运行的总数)。
  • 另外创建两条细节行。在现有的发票明细行的上方处移动一个,并在下方保留一个。
  • 隐藏现有的“客户端GroupName”页眉和页脚。
  • 在两个新的详细信息行(Da和Dc)中添加GroupName。
  • 在Da中,如果recordCount不等于1,则有条件地禁止该行。
  • 在Dc中,有条件地抑制该行是recordCount的其余部分除以5所得的值,除零外。例如:remainder(recordnumber,5)<> 0
  • 在Dc中,如果记录数除以10等于零,则设置“在...之前新建页面”以结束上一页。
  • 在GH1中,设置一个“之前的新页面”,当 recordnumber (非recordCount)不等于1时运行。

结果应该是Da 看起来像组标题,并在每组5条记录的顶部显示公司名称。 Dc中的“之前的新页面”将强制在每个客户组内的每10条记录之后创建一个新页面。每次客户端更改时,GH1“之前的页面”将强制启动新页面,但这种情况会阻止该页面在报告中的第一组发生。如果您有单独的报告标题页,则可能根本不关心它。