【问题标题】:Crystal Reports - Hide page header if there in no record on a pageCrystal Reports - 如果页面上没有记录,则隐藏页眉
【发布时间】:2014-12-08 23:02:47
【问题描述】:

如果最后一页没有记录(详细信息部分),如何隐藏页眉。如果最后一页有数据,则必须在最后一页显示页眉,否则隐藏页眉。

Formaula pagenumber = totalpagecount 不起作用,因为它总是会隐藏最后一页的页眉。

【问题讨论】:

    标签: crystal-reports crystal-reports-2008


    【解决方案1】:

    将此公式放在详细信息部分的隐藏字段中:

    WhilePrintingRecords;
    Global BooleanVar finished;
    finished := OnLastRecord
    

    并将其设为页眉中的 Suppress 公式:

    Global BooleanVar finished
    
    • finished 初始化之前,页眉会显示出来。
    • 打印详细记录后,它将设置为false
    • 当您最终到达最后一个详细信息部分时,finished 设置为 true
    • 如果你碰巧到达另一个页眉,finished 仍然是true,Crystal 会抑制页眉。

    这是一个有趣的问题。我以前遇到过这种行为,但从未尝试过解决它。我认为您需要使用变量,因为在页眉中,Next()OnLastRecord 等常用选项无法区分要打印更多记录和没有更多记录要打印。我认为运行总计会有同样的问题——在有更多记录要打印的页面上和在没有要打印记录的页面上,值将是相同的。

    【讨论】:

    • 太棒了,这就是我一直在寻找的东西,2011 年的帖子给出了提示。
    • 如果您有多条记录,它工作得很好,但如果您只有一条记录,那么它不会打印页眉...
    • 我试过了,它隐藏了页面上的页眉,该页面没有详细信息部分的记录,但它也隐藏了我的详细信息部分的最后一条记录。所以它显示错误的结果。
    【解决方案2】:

    我找到了更好、更有效的解决方案(只是稍微调整了 Noa 的代码):

    WhilePrintingRecords;
    Global BooleanVar finished;
    finished := OnLastRecord AND NOT OnFirstRecord
    

    它可以工作,即使细节只包含一行。

    【讨论】:

      【解决方案3】:

      您可以调整Crystal Reports: Display a Message When Report Has No Data 以满足您的需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多