在 FastReport 5 中调整对象 Positions/Dimensions
Adjust Object Positions/Dimensions in FastReport 5
我需要在生成报告时移动一些备忘录对象并调整带区的高度。我在脚本中添加了以下内容:
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。我也不希望大 space 出现在他们本来应该出现的地方。因此,我检查参考 ID 是否已更改并四处移动项目并隐藏不打印的文本。
问题是虽然这是在 BeforePrint 事件中,但我对位置或大小所做的任何更改都会影响所有行项目,而不仅仅是事件正在查看的行项目。
有没有办法使用 Delphi 2007 和 FastReport VCL 5 解决这个问题?
我想出了一个更好的方法来做到这一点。我发现,如果 child 带不可见,您仍然可以打印任何 children。因此,我将所有内容从主数据带中取出,并将它们移动到 2 child 个带中:
Master Band (Height = 0)
Child Band 1 with stuff to hide; PrintChildIfInvisible = true
Child Band 2 with stuff to always show
然后在 Child Band 1 的打印前我只是检查它是否应该被隐藏起来。
我需要在生成报告时移动一些备忘录对象并调整带区的高度。我在脚本中添加了以下内容:
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。我也不希望大 space 出现在他们本来应该出现的地方。因此,我检查参考 ID 是否已更改并四处移动项目并隐藏不打印的文本。
问题是虽然这是在 BeforePrint 事件中,但我对位置或大小所做的任何更改都会影响所有行项目,而不仅仅是事件正在查看的行项目。
有没有办法使用 Delphi 2007 和 FastReport VCL 5 解决这个问题?
我想出了一个更好的方法来做到这一点。我发现,如果 child 带不可见,您仍然可以打印任何 children。因此,我将所有内容从主数据带中取出,并将它们移动到 2 child 个带中:
Master Band (Height = 0)
Child Band 1 with stuff to hide; PrintChildIfInvisible = true
Child Band 2 with stuff to always show
然后在 Child Band 1 的打印前我只是检查它是否应该被隐藏起来。