怎么给TfrxUserDataSet自定义的字段赋值(100分)

  • 主题发起人 主题发起人 nullgate
  • 开始时间 开始时间
N

nullgate

Unregistered / Unconfirmed
GUEST, unregistred user!
我想给delphiform 上的TfrxUserDataSet 字段赋值,然后传到报表上显示出来
 
自己定义这几个事件,在事件里边赋值:
OnCheckEOF
这个事件监视一个参数——EOF的布尔值。设置这个参数为True可停止导航。
OnFirst
事件处理必须指定首记录指针。
OnNext
事件处理必须指定下一记录的指针。

OnPrior
事件处理必须指定前一记录的指针。

在这种情况下的“指针”和“记录”只是字面不同。如果你用来自数组的数据进行工作,“记录”是数组的行,而“指针”是保存行标的变量。
导航方法用下面的方式进行调用:OnFirst,OnCheckEOF,OnNext,OnCheckEOF,OnNext,……,OnCheckEOF,OnNext。如果是分组报表,那么OnPrior方法在分组结束后调用。

如果你在构建报表前知道“记录”数,你可以使用RangeEnd和RangeEndCount属性。只须设置RangeEnd := reCount和RangeEndCount :=记录数(例如,数组的行数)。这时,你可以不需要OnCheckEOF事件处理。要找到当前记录位置,使用RecNo: Integer属性。在第一个位置RecNo = 0。
当生成过程中将一个不可改变的静态记录值赋值给一个记录时,可以使用一个frVariables,就象这样:
frVariables['Reporting Period'] := 'January';
frReport1.ShowReport;
必要的情况下使用控件的OnGetValue事件,它在所有验证之前调用:
当生成过程中将一个可改变的记录值赋值给一个记录时,你可以使用数据字典或TfrReport.OnGetValue事件处理,就象这样:
procedure TForm1.frReport1GetValue(const ParName: String;
var ParValue: Variant);
begin
if AnsiCompareText(ParName, 'Reported Period') = 0 then
ParValue := Table1OtchPeriod.Value;
end;
 
说了这么么,没明白你的回答和我的提问有什么关系,唉
 
给fastreport 传递参数 一般有两种方式
1: 直接操作:
frVariables['Reporting Period'] := 'January';
2:定义fastreport的 onGetValue 函数
也就是设置根据ParName 设置ParValue 值。
procedure TForm1.frReport1GetValue(const ParName: String;
var ParValue: Variant);
begin
if AnsiCompareText(ParName, 'id') = 0 then
ParValue := MyData.rid
end;
end;
 
后退
顶部