Crystal reports 如果衍生部分在下一页crystal报告中,如何显示共享变量

Crystal reports 如果衍生部分在下一页crystal报告中,如何显示共享变量,crystal-reports,crystal-reports-2010,Crystal Reports,Crystal Reports 2010,我在CR报告M中创建了两个组,然后在N组标题中创建了4个部分。 在M组标题中,我用公式将变量x增加1: WhilePrintingrecords; x: = x+ 1; 在组标题(组N)的这四个部分中,我显示了公式: while printingrecords; shared numbervar x; 如果在第一页末尾没有足够的内容来写4个部分Na、Nb、Nc和Nd,则在第一页中只画Na部分,词缀公式返回值X,其他部分Nb、Nc和Nd显示在下一页中,但词缀公式不返回任何内容 要解决这个问题

我在CR报告M中创建了两个组,然后在N组标题中创建了4个部分。 在M组标题中,我用公式将变量x增加1:

WhilePrintingrecords;
x: = x+ 1; 
在组标题(组N)的这四个部分中,我显示了公式:

while printingrecords;
shared numbervar x;
如果在第一页末尾没有足够的内容来写4个部分Na、Nb、Nc和Nd,则在第一页中只画Na部分,词缀公式返回值X,其他部分Nb、Nc和Nd显示在下一页中,但词缀公式不返回任何内容

要解决这个问题,我可以选中“保持组的统一”选项,但我不想重新分组行组。此外,我想了解问题的原因


你对这个奇怪的问题有什么想法吗?

摘自Crystal Reports的文档:

可用的变量范围包括:

  • 全球的
该变量可用于整个当前报告中的公式

  • 共享
该变量可以与子报表以及整个当前报表共享

  • 本地的
该变量是特定的,只能在定义该变量的公式中使用

打印记录时,您的增量函数需要为

// {@increment}

// 2nd pass
WhilePrintingRecords;

// scoped 'global'; increment
Numbervar x: = x+ 1;
将显示公式更改为使用
global
范围:

// {@display}

// 2nd pass
WhilePrintingRecords;

// declare and display
Numbervar x;
这种设计:

生成此预览:


除非在主报表和子报表之间传递值,否则应该使用
全局
作用域,而不是
共享
。我认为除非在主报表和子报表之间传递值,否则应该使用共享作用域,而不是全局。我的增量函数已经是“whileprinting records”(第三次传递)我禁止共享(仅限“全局”范围),但我仍然有相同的问题非常感谢您的回答,但我忘记了我的问题中的一个公式,在报告的页脚中,我将此公式放在了@GlobAdd