FastReport中,如何对元件动态赋值

delphi11年前 (2014)发布 admin
352 0

1、对 Memo 赋值 (定义过程) (方法1)
Procedure SetMemoData(aReport: TfrxReport; aMemoName, aString: string);
var
mv: TfrxMemoView;
begin
mv := aReport.FindObject(aMemoName) as TfrxMemoView;
if mv<>nil then
mv.Memo.Text := aString;
end;
2、 直接对具体元件 Memo1 赋值 (方法2)
var
myMemo: TfrxMemoView;
begin
myMemo := TfrxMemoView(frxReport1.FindObject(‘Memo1’));
//or//myMemo := frxReport1.FindObject(‘Memo1’) as TfrxMemoView;
if myMemo <> nil then
myMemo.Memo.Text := ‘文本’;
end;
3、对 Memo1,Memo2 赋值 (方法3)【已测试成功】
假定 memo1 内容为[beingtime], memo2 内容为 [endtime]
把beingtime,endtime加入数据字典
在 frReport1GetValue 事件中加入如下代码:
if ParName = ‘begintime’ then
ParValue := edit1.text;
if ParName = ‘endtime’ then
ParValue := edit2.text;
4、对 Cross1 赋值 (在 BeforePrint 中加入代码,c : TfrxReportComponent)
var
Cross: TfrxCrossView;
i, j: Integer;
begin
if c is TfrxCrossView then
begin
if c.Name = ‘Cross1’ then
begin
Cross := TfrxCrossView(c);
for i := 1 to 8 do
for j := 1 to 8 do
Cross.AddValue([i], [j], [StringGrid1.Cells[i, j]]);
end;
if ….
end;
end;

© 版权声明

相关文章