如何在子报表为空时禁止主报表的整个部分

时间:2017-03-24 04:39:36

标签: crystal-reports crystal-reports-xi

我的报告设计有以下部分。

Report Header
  

我添加了几个字段来显示报告标题和其他标题   信息后跟子报告。我用一个隐藏/显示这个部分   参数值,它工作得很完美。

Page Header a

我在这里有标题信息。

Page Header b

我在这里有报告标题。根据参数值

隐藏/显示此部分
Page Header c

字段标题在这里

Group Header #1

禁止

Details

详细字段

Group Footer #1

禁止

Report Footer a

空白和压制

Report Footer b

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

Page Footer

空白

当我打印报表页脚b时,我需要一种方法来压缩页眉a,页眉b和页眉c。因为它有自己的标题。当子报表为空时,我还需要取消报表页脚b的整个部分。任何建议/帮助都非常感激。

2 个答案:

答案 0 :(得分:0)

在水晶报告中,您可以通过设置来完成。

要取消空白部分:

  1. 转到报告>科专家
  2. 突出显示空白的部分(在此示例中为 详情部分)
  3. 标记抑制空白部分复选框
  4. 点击确定
  5. https://kb.blackbaud.com/articles/Article/75439

    即使对于子报表,如果右键单击子报表,请设置"空白时禁止"

    Suppressing subreport with no data and a header

答案 1 :(得分:0)

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

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

这个解决方案对我有用。若要在子报表包含数据时禁止子报表部分的主报表标题,请在报表页脚中放置公式

WhilePrintingRecords;
global booleanvar no_header := True;

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

WhilePrintingRecords;
global booleanvar no_header;
no_header

用于页眉a,页眉b和页眉c 谢谢大家的回复时间。我真的很感激。