此事件在对象填充完数据后发生,使用此事件用于对象包含的字段或表达式的值。在报表中有一个隐含的服务变量“Value”,每个文本对象的值被保存在此变量当中,但“Value”变量仅在“OnAfterData”事件中有效。如果要分析各带文本“[Table1.”Field1”]”和“[<Table2.”Field1”>+10]”的两个文本对象时,可以参考“Value”变量的值。
if Value > 3000 then
Memo1.Color := clRed
而不是使用如下方式:
if <Table1.“Field1”> > 3000 then
Memo1.Color := clRed
使用“Value”变量而不使用表达式,使用得我们可以对多个文本对象只写一个多用途“OnAfterData”事件的可能。
需要注意的一点是,如果在一个对象当中有多个表达式(如[expr1],[expr2]),那么“Value”变量只保存了最后一个表达式的值。
事件“OnAterData”非常适合计算诸如文本对象的高度和宽度。如果需要在脚本中获得(可伸展的对象)高度,但在文本对象中使用了表达式,在“OnAfterData”事件中可以使用如下脚本:
var
MemoWidth: Extended;
begin
MemoWidth := TfrxMemoView(Sender).CalcWidth;
end;
如果此代码被放置在“OnBeforePrint”事件中,此高度只是表达式所在的对象的高度而不是它的值的高度。