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

Crystal reports 子报表为空时如何抑制主报表的整个部分,crystal-reports,crystal-reports-xi,Crystal Reports,Crystal Reports Xi,我的报告设计有以下几个部分 Report Header 我添加了几个字段来显示报告标题和其他标题 信息后接子报告。我使用 参数值,并且它工作得非常完美 我这里有标题信息 Page Header b 我这里有报告标题。基于参数值隐藏/显示此部分 Page Header c 字段标题在这里 Group Header #1 压制 Details Report Footer a 详细字段 Group Footer #1 压制 Details Report Footer a 空白与压制

我的报告设计有以下几个部分

Report Header
我添加了几个字段来显示报告标题和其他标题 信息后接子报告。我使用 参数值,并且它工作得非常完美

我这里有标题信息

Page Header b
我这里有报告标题。基于参数值隐藏/显示此部分

Page Header c
字段标题在这里

Group Header #1
压制

Details
Report Footer a
详细字段

Group Footer #1
压制

Details
Report Footer a
空白与压制

Report Footer b
我添加了几个字段来显示报告标题和其他标题信息,后面是一个子报告

Page Footer
空白


当我打印报表页脚b时,我需要一种抑制页眉a、页眉b和页眉c的方法。因为它有自己的头。当子报表为空时,我还需要抑制报表页脚b的整个部分。非常感谢您的任何建议/帮助。

在crystal report中,您可以通过设置来完成

要抑制空白部分,请执行以下操作:

  • 转到报告>专家部分
  • 突出显示显示空白的部分(在本例中 (详情部分)
  • 标记“抑制空白部分”复选框
  • 单击“确定”
  • 即使对于子报表,如果右键单击子报表,也可以设置“为空时抑制”


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

    CRAXDRT.Report.Sections("RFb").Suppress = True
    
    这个解决方案对我有效。若要在子报表包含数据时抑制子报表节的主报表标题,请在报表页脚a中放置一个公式

    WhilePrintingRecords;
    global booleanvar no_header := True;
    
    在“专家”部分中,将抑制公式设置为

    WhilePrintingRecords;
    global booleanvar no_header;
    no_header
    
    对于页眉a、页眉b和页眉c
    感谢大家抽出时间回复。非常感谢。

    您的子报告的内容来自一个查询?或者从哪里?我在设计期间使用了字段定义文件。在运行时,通过代码中的CrystalDataObject.CrystalComObject.AddRows添加数据。我在报告页脚b中有子报告。我在本节中有一些字段和子报表。如果子报表为空或为空,我需要取消显示整个部分。请检查第二个链接