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;
};
我有一份报告,详细信息带 绑定到数据源 。 在某些情况下,我的报告有多个页面,最后一页可能包含 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;
};