子报表为空时如何抑制主报表的整个部分

How to suppress entire section of main report when subreport is blank

我设计了包含以下部分的报告。

Report Header

I have added few fields to display report title and other header information followed by a sub report. I hide/show this section with a parameter value and it is working just perfect.

Page Header a

我这里有 header 信息。

Page Header b

我这里有报告标题。 Hide/Show本节根据参数值

Page Header c

字段 header 放在这里

Group Header #1

抑制

Details

详细字段

Group Footer #1

抑制

Report Footer a

空白和抑制

Report Footer b

我添加了几个字段来显示报告标题和其他 header 信息,后跟子报告。

Page Footer

空白

我需要一种方法来在打印报表页脚 b 时抑制 Page Header a、Page Header b 和 Page Header c。因为它有自己的header。当子报告为空白时,我还需要取消 Report Footer b 的整个部分。任何 suggestion/help 非常感谢。

在crystal报告中,您可以通过设置完成。

取消空白部分:

  1. 转到报告 > 部分专家
  2. 突出显示空白的部分(在本例中, 详情部分)
  3. 标记取消空白部分复选框
  4. 点击确定

https://kb.blackbaud.com/articles/Article/75439

即使对于子报表,如果右键单击子报表,设置 "Suppress when blank"

Suppressing subreport with no data and a header

我已经从代码中找到了解决方案。如果 crystal object 的数据行为空,则

CRAXDRT.Report.Sections("RFb").Suppress = True

这个解决方案对我有用。要在子报表包含数据时为子报表部分抑制主报表 header,请在报表页脚 a

中放置一个公式
WhilePrintingRecords;
global booleanvar no_header := True;

在专家部分将抑制公式设置为

WhilePrintingRecords;
global booleanvar no_header;
no_header

页面 Header a、页面 Header b 和页面 Header c 谢谢大家花时间回复。非常感谢。