Crystal Reports:使用相应的详细信息部分

时间:2015-10-23 13:24:23

标签: crystal-reports formula suppress

我的报告结构如下:

  • PageHeaderSection1
  • PageHeaderSection2
  • PageHeaderSection3
  • PageHeaderSection4
  • PageHeaderSection5
  • DetailsS​​ection a
  • DetailsS​​ection b
  • DetailsS​​ection c
  • DetailsS​​ection d
  • DetailsS​​ection e

空时禁止所有部分。

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

例如:

  • 详细信息部分a将标题1的全局变量设置为true并将所有其他变量设置为false
  • 标题1抑制公式返回标题1的变量值

虽然当每个细节部分都有一些数据时,这种方法很好,但是当详细信息部分b没有任何数据时,我遇到了麻烦。在这种情况下,标题2不会被抑制。包含详细信息c的第一页显示错误的标题2.每个详细信息页面c都会显示正确的标题3.

这是一个公式,它定义并将所有变量设置为false(放在报表头中):

WhilePrintingRecords;
Global BooleanVar Header1;
Global BooleanVar Header2;
Global BooleanVar Header3;
Global BooleanVar Header4;
Global BooleanVar Header5;

Header1:= False;
Header2:= False;
Header3:= False;
Header4:= False;
Header5:= False;

这是设置第一个标题的公式,它放在详细信息部分a中(其他公式类似):

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;

最后是标题1的压制公式:

WhilePrintingRecords;
Global BooleanVar Header1;
not Header1;

我为每个细节部分都有一个公式。他们将正确的标头变量设置为true,将其他变量设置为false。

同样,当所有细节部分都有一些数据时,这样可以正常工作。 我尝试在一些公式上添加OnLastRecord,但这根本不起作用。我似乎错过了一些东西。我该怎么办?

更新

在评论中的问题之后,我想添加一些内容以便更好地理解:

我的所有详细信息部分都包含每个子报表,而不包含任何其他内容。主报告本身没有数据,只有一些布局功能。如果为空,则会抑制所有子报表,如果为空,则还会抑制详细信息部分。 在评论中的问题后,我尝试了一些事情: 我添加了一个共享变量" HasSomeData"。该变量在子报表中设置(我可以在那些中使用count(),因为子报表具有实际数据字段)。这很好用。仍然无效的是抑制报告标题。我在suppress公式中返回新的共享变量,但它没有任何效果,标题现在随处可见。我还在谷歌上搜索,但如果有人告诉我我失踪了什么,我会非常高兴。

0 个答案:

没有答案