DevExpress Xtrareport 当详细信息部分为空时隐藏报告 header

DevExpress Xtrareport Hide report header when detail section is empty

我有一份报告,详细信息带 绑定到数据源 。 在某些情况下,我的报告有多个页面,最后一页可能包含 Detail Band 行,而在其他情况下,最后一页没有 Detail Band 行,因此它只会显示页面 header 和我的报告页脚。

我想在最后一页没有详细信息行时隐藏 header。

我尝试使用 PageHeader_BeforePrint 事件,但无法获得任何值来指示此页面的“详细信息”部分是否为空。

我使用了一个行计数标签,但是这个计数器在PageHeader_BeforePrint事件中总是有相同的值,虽然在打印完成后,这个计数器的可见值是每页都正确。

所以,基本问题是:在PageHeader_BeforePrint如何判断Detail Band部分是否有行?

不幸的是,没有简单的方法可以做到这一点。 dx-support page

上描述了类似的解决方案

您应该手动计算行数并勾选以取消打印:

private int rowCounter = 0;

        Detail.AfterPrint += (o, args) => { rowCounter++; };
        PageHeader.BeforePrint += (o, args) =>
        {
            if (rowCounter >= this.RowCount)
                args.Cancel = true;
        };