子报表主报表中的页码

2020-08-20 04:23发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用Crystal Report 2016,但在Main Report.It 中仅包含5个子报表 子报表和每个子报表中都包含多个页面。我要为整个报表实现页码(M页的N)。特殊字段(M页的N)对于每个子报表都可以正常使用,但是它 正在为整个子报表工作。 我在报表标题中有两个子报表,在"详细信息"部分中有两个子报表,在"报表页脚"中有一个子报表。

例如:

子报告1-第1页

子报告1-第2页

子报告2-第1页

子报告2-第2页

子报告3-第1页

子报告3-第2页

子报告3-第3页

子报告4-第1页

子报告4-第2页

子报告5-第1页

请让我知道是否有解决方案。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在使用Crystal Report 2016,但在Main Report.It 中仅包含5个子报表 子报表和每个子报表中都包含多个页面。我要为整个报表实现页码(M页的N)。特殊字段(M页的N)对于每个子报表都可以正常使用,但是它 正在为整个子报表工作。 我在报表标题中有两个子报表,在"详细信息"部分中有两个子报表,在"报表页脚"中有一个子报表。

例如:

子报告1-第1页

子报告1-第2页

子报告2-第1页

子报告2-第2页

子报告3-第1页

子报告3-第2页

子报告3-第3页

子报告4-第1页

子报告4-第2页

子报告5-第1页

请让我知道是否有解决方案。

付费偷看设置
发送
2条回答
Haoba3210
1楼-- · 2020-08-20 04:35

最佳做法是避免使用第N页,因为报表必须先呈现报表中的所有页面才能显示第一页,这会显着降低报表的速度。 当您使用子报表时,尤其会发生这种情况,因为在到达特定子报表所在的页面之前,Crystal通常不会渲染子报表。 还要注意,每次遇到子报表时,都会运行一个多带带的查询-这意味着对于主报表中的detail节的每个实例,您都会在该子报表中多带带运行一个查询。 在您的情况下,这意味着3(对于页眉和页脚)+ 2 *子报表运行的详细记录数。

话虽如此,您可以尝试将页码放在主报表的页脚中 在各个子报表中。

如果您无法使M的第N页以这种方式工作,则可能无法正常工作。 但是,也许可以使用共享变量来获取正确的页码(不包含"总页数"部分),以便您可以在子报表中合并页码。

在主报表中 ,您可以将此公式放在带有子报表的,位于上方的多带带的禁止显示的报表标题部分中。

 WhilePrintingRecords;
 共享NumberVar pageCount:= 0;
 ''

公式末尾的空字符串表示它不会显示任何内容。

在每个子报表中,您将在要使用的任何部分中使用此公式 用于显示页码:

 WhilePrintingRecords;
 共享NumberVar pageCount:= PageCount + 1 

这将显示当前页码。 如果要在页面标题中使用此功能,则可以将在子报表中仅发生一次的内容归为一组,并将该组设置为在每个页面上重复该组标题。 无法在子报表中设置页面页脚。 另外,如果可以在同一页面上呈现多个子报表,则将不起作用。

-Dell

半个程序猿
2楼-- · 2020-08-20 04:50

Hi

  • 创建 如下所示的新公式,并将其放在您的每个子报表标题部分。
如果页码<> 1
    然后'Page'+ totext(pagenumber -1,0,'')+
         '的'+ totext(totalpagecount-1,0,'')
    否则为"第1页,共1页";
 

致谢

Venkat

一周热门 更多>