【发布时间】: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