Crystal reports Crystal Reports:使用相应的详细信息部分抑制页眉

Crystal reports Crystal Reports:使用相应的详细信息部分抑制页眉,crystal-reports,formula,suppress,Crystal Reports,Formula,Suppress,我有一份复杂的报告,结构如下: 页眉部分1 页眉部分2 页眉第3节 页眉第4节 页眉第5节 细节部分a 细节部分b 细节部分c 细节部分d 细节部分e 空时,将抑制所有部分 每个细节部分都有自己的标题(1-a、2-b等) 我使用一些公式和全局变量抑制标题,并使用每个标题的抑制公式 例如: 详细信息部分a将标题1的全局变量设置为true,并将所有其他变量设置为false 标头1抑制公式返回标头1的变量值 当每个细节部分都有一些数据时,这种方法可以很好地工作,但当细节部分b没有任何数据时,我

我有一份复杂的报告,结构如下:

  • 页眉部分1
  • 页眉部分2
  • 页眉第3节
  • 页眉第4节
  • 页眉第5节
  • 细节部分a
  • 细节部分b
  • 细节部分c
  • 细节部分d
  • 细节部分e
空时,将抑制所有部分

每个细节部分都有自己的标题(1-a、2-b等) 我使用一些公式和全局变量抑制标题,并使用每个标题的抑制公式

例如:

  • 详细信息部分a将标题1的全局变量设置为true,并将所有其他变量设置为false
  • 标头1抑制公式返回标头1的变量值
当每个细节部分都有一些数据时,这种方法可以很好地工作,但当细节部分b没有任何数据时,我就遇到了麻烦。在这种情况下,不会抑制收割台2。包含详细信息c记录的第一页显示错误的标题2。详细信息c的每一页都会显示正确的标题3

这是定义所有变量并将其设置为false(放置在报告标题中)的公式:

这是设置第一个标题的公式,该标题位于详细信息部分a内(其他公式类似):

最后是头1的抑制公式:

WhilePrintingRecords;
Global BooleanVar Header1;
not Header1;
我对每个细节部分都有一个公式。他们将正确的header变量设置为true,将所有其他变量设置为false

同样,当所有细节部分都有一些数据时,这种方法也可以很好地工作。 我试着在一些公式上加上OnLastRecord,但根本不起作用。我好像错过了什么。我该怎么办

更新

在评论中的问题之后,我想补充几点以便更好地理解:

所有“我的详细信息”部分都包含一个子报告,而不包含其他内容。主报表本身没有数据,只有一些布局功能。如果为空,则抑制所有子报告,如果为空,则也抑制详细信息部分。 在评论中提出问题后,我尝试了几件事:
我添加了一个共享变量“HasSomeData”。变量在子报表中设置(我可以在这些子报表中使用count(),因为子报表具有真实的数据字段)。这个很好用。仍然不起作用的是抑制报表标题。我在suppress公式中返回了新的共享变量,但它没有效果,现在到处都显示了标题。我仍在谷歌上搜索和尝试,但如果有人告诉我我遗漏了什么,我会非常高兴。

你如何检查细节部分是否有数据?我认为公式不会启动,因为whileprinting记录在没有记录时会立即停止公式。变量不会被设置。这不是我的问题……你如何检查数据是否存在?我不是直接检查。“我的详细信息”部分仅包含子报告,当子报告和“详细信息”部分为空时,我将取消显示。
WhilePrintingRecords;
Global BooleanVar Header1;
Global BooleanVar Header2;
Global BooleanVar Header3;
Global BooleanVar Header4;
Global BooleanVar Header5;

Header1:= True;
Header2:= False;
Header3:= False;
Header4:= False;
Header5:= False;
WhilePrintingRecords;
Global BooleanVar Header1;
not Header1;