动态设置报表中的特定对象的内容
动态设置报表中的特定对象的内容有两种方法。
法一 查找对象法
通过FindRaveComponent函数逐级获得子对象来确定目标对象后,直接设定该对象
各种属性。
法二 参数法
在RAVE报表设计器中,为特定的页增加参数Param1;在程序代码中setparam函数动
态改变参数的内容。RAVE报表中与该参数挂接的对象DataText也会相应地动态改变。(参数
与对象挂接的方法是:在RAVE报表设计器中选定特定的对象,比如一个DataText对象,利用
属性编辑器设定对象的DataField属性为前面加入的参数,比如Param.Param1,即可)
方法一可以更改对象的多种属性,而方法二仅能改变内容。
-------------------------
源代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RpDefine, RpRave, StdCtrls, RVClass,RVCsStd;
type
TForm1 = class(TForm)
Button1: TButton;
RvProject1: TRvProject;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
MyPage: TRavePage;
MyText: TRaveText;
begin
RvProject1.Open;
//方法一 采用查找对象法
With RvProject1.ProjMan do
begin
MyPage := FindRaveComponent('Report1.Page1',nil) as TRavePage; //查找
PAGE
MyText := FindRaveComponent('Text1',MyPage) as TRaveText; //查找
TEXT
MyText.Text := 'SCYANGYU@163.COM 上海'; //设置报
表中文本内容
MyText.Color := clRed; //设置颜
色
end; { with }
//方法二 采用参数法
RvProject1.SetParam('Param1','SCYANGYU@163.COM 上海');
RvProject1.ExecuteReport('Report1');
RvProject1.Close;
end;
end.
|