我有一个(重复的)细节带,并附带一个子带:
我想隐藏子带,直到它打印 last 详细带。从概念上讲,它将是这样的:
我的第一个想法是检查数据集的.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带正在打印?
答案 0 :(得分:0)
我遇到了同样的问题,我通过将 $collection = collect([0, 1, 2, 3, 4, 5]);
$chunk = $collection->skip(2)->take(3);
$chunk->all();
属性设置为 DetailBand1.FooterBand
解决了这个问题。
这会导致 ChildBand1
在所有重复的 ChildBand1
项都显示后显示一次。