【问题标题】:How to know when the last Detail band is printing?如何知道最后一个 Detail band 何时打印?
【发布时间】:2019-08-09 06:16:40
【问题描述】:

我有一个(重复的)细节带,并附有一个子带:

我想隐藏 child band,直到它打印 last detail band。从概念上讲,它是这样的:

EOF?

我的第一个想法是检查数据集的.EOF属性;你可以数据行,但它仍然是EOF:

procedure TForm6.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);
begin
    // Print our child band if we're the last detail band:
    ChildBand1.Enabled := QuickRep1.DataSet.EOF;
end;

.EOF 是真的永远不会发生。

也许 BeforePrint 发生在内部 .Next 发生之前,所以我尝试 AfterPrint

procedure TForm6.DetailBand1AfterPrint(Sender: TQRCustomBand; BandPrinted: Boolean);
begin
    // Print our child band if we're the last detail band:
    ChildBand1.Enabled := QuickRep1.DataSet.EOF;
end;

.EOF 从未设置。

如何检测到最后一个细节带正在打印?

所以问题变成了:

如何检测到最后一个 rbDetail 波段正在打印?

【问题讨论】:

  • 理论上,你可以在 Onbeforeprint 中做的是,创建一个书签,推进数据集,然后测试 EOF,然后返回书签。

标签: delphi delphi-xe6 quickreports


【解决方案1】:

我遇到了同样的问题,我通过将 DetailBand1.FooterBand 属性设置为 ChildBand1 解决了它。

这会导致在显示所有重复的DetailBand1 项目后,ChildBand1 显示一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    相关资源
    最近更新 更多