提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
在生成报告时,我需要在一些备忘录对象周围移动并调整乐队的高度。 我在脚本中添加了以下内容:
procedure MasterDataOnBeforePrint(Sender: TfrxComponent);
begin
if (DRID = <TRAN_DETAIL."REFERENCEID">) then
begin
txChargeDate.Top := 0;
txChargeDesc.Top := 0;
txChargeQuant.Top := 0;
txChargeAmt.Top := 0;
txDRInfo.Visible := false;
txDRDesc.Visible := false;
MasterData.Height := 0.25;
end
else
begin
MasterData.Height := 0.65;
txChargeDate.Top := 0.4;
txChargeDesc.Top := 0.4;
txChargeQuant.Top := 0.4;
txChargeAmt.Top := 0.4;
txDRInfo.Visible := true;
txDRDesc.Visible := true;
end;
DRID := <TRAN_DETAIL."REFERENCEID">;
end;
基本上,如果当前订单项与上一个订单项具有相同的ReferenceID,则我不希望打印txDRInfo和txDRDesc。 我也不希望有很大的空间来显示它们的原位。 因此,我检查参考ID是否已更改,并四处移动项目并隐藏不打印的文本。
这样做的问题是,尽管这是在BeforePrint事件中,但我对位置或大小所做的任何更改都会影响所有订单项,而不仅是该事件正在查看的订单项。
使用Delphi 2007和FastReport VCL 5可以解决此问题吗?
我想出了一种更好的方法。 我发现,如果使子带不可见,您仍然可以让任何带子的孩子打印。 因此,我将所有内容从“主数据”乐队中删除,并将其移至两个子乐队中:
Master Band (Height = 0)
Child Band 1 with stuff to hide; PrintChildIfInvisible = true
Child Band 2 with stuff to always show
然后在打印之前的“儿童乐队1”中,我只是检查是否应使其不可见。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.