C# 如何在不更改crystal report中的新页面的情况下限制每个组的行数

C# 如何在不更改crystal report中的新页面的情况下限制每个组的行数,c#,crystal-reports,report,C#,Crystal Reports,Report,有没有办法在不改变crystal report 2008新页面的情况下限制每组的行数。我这样做的原因是因为客户使用的打印机爱普生LQ 300(点阵)总是会在横向打印,如果检测到我的横向布局。因为他们需要记录,所以每次打印一页(字母大小)两组,每组必须显示5条记录。例如: 但是,在CR2008中,如果您在group section expert中设置了每个组的行,它肯定会更改为新页面,但我不希望它更改为新页面。有什么想法吗 一页(字母大小): 我不认为有一个直接的方法来实现这一点与小组。。。但您可

有没有办法在不改变crystal report 2008新页面的情况下限制每组的行数。我这样做的原因是因为客户使用的打印机爱普生LQ 300(点阵)总是会在横向打印,如果检测到我的横向布局。因为他们需要记录,所以每次打印一页(字母大小)两组,每组必须显示5条记录。例如:

但是,在CR2008中,如果您在group section expert中设置了每个组的行,它肯定会更改为新页面,但我不希望它更改为新页面。有什么想法吗

一页(字母大小):


我不认为有一个直接的方法来实现这一点与小组。。。但您可能可以采用一种变通方法,并将其设置为每个组5条记录/10页记录。为了本说明的目的,我假设如下:

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

用这个:

您可以通过创建手动运行总数来跟踪每个客户机组的记录计数来实现这一点。您将隐藏实际的组标题,在详细信息行中打印组标题名称,然后使用该记录计数和余数()公式有条件地隐藏或显示详细信息中的组名称,以特定间隔创建新页面,等等。您还将使用recordnumber—这将为您提供整个报告中的实际当前记录计数,并为每个新客户提供单独的部分

步骤概述:

  • 创建一个公式(我们称之为recordCount),跟踪每个客户机组中的行数,在组更改时重置计数(这将是一个手动运行的总数)
  • 创建两条附加详图线。在现有发票明细行上方移动一个,并在下方保留一个
  • 禁止显示现有的客户端GroupName页眉和页脚
  • 在两个新的详细信息行(Da和Dc)中添加GroupName
  • 在Da中,如果recordCount不等于1,则有条件地抑制该行
  • 在Dc中,有条件地抑制行是记录计数的剩余部分除以5是除零以外的任何值。例:余数(记录编号,5)0
  • 在Dc中,在记录数除以10等于零的条件下,设置一个“之前的新页”以结束上一页
  • 在GH1中,设置一个“之前的新页面”,该页面在recordnumber(非recordCount)不等于1时运行
结果应该是Da看起来像一个组标题,并在每组5条记录的顶部显示公司名称。Dc中的“之前新建页面”将强制在每个客户组内每10条记录之后创建一个新页面。GH1“之前的页面”将在每次客户端更改时强制启动一个新页面,但该条件会阻止报告中的第一个组出现新页面。如果你有一个单独的报告标题页,你可能不会在意

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