各位大侠,请帮个忙:
  如何动态的创建FastReport里的组件,和对创建好的组件附值?

解决方案 »

  1.   

    看一下下面的做法了!
    procedure TForm1.Button1Click(Sender: TObject);var  v: TfrView;  b: TfrBandView;  Page: TfrPage;begin  frReport1.Pages.Clear;  frReport1.Pages.Add;              // create page  Page := frReport1.Pages[0];   b := TfrBandView(frCreateObject(gtBand, ''));  // create MasterData band  b.SetBounds(0, 20, 0, 20);  b.BandType := btMasterData;  b.Dataset := 'frDBDataSet1';  Page.Objects.Add(b);   v := frCreateObject(gtMemo, '');  // create data field  v.SetBounds(20, 20, 200, 16);  v.Memo.Add('[Table1."Company"]');  Page.Objects.Add(v);   frReport1.ShowReport;end;
      

  2.   

    但是,我怎么引用FastReport里的组件呢?(假如这个组件不是动态创建,而是设计状态下添加的)
      

  3.   

    在fastreport的ongetvalue中写代码
      

  4.   

    小明同志:
      ongetvalue中
    怎么写代码?它只有两个参数,这两个参数怎么用?
    在FASTREPORT调用不了这两个参数啊!
      

  5.   

    两个参数,ParName和ParValue,可以根据ParName判断是哪个对象,再对ParValue赋值
    例如,如果FastReport上的对象是个Memo,双击它把它的值设为“[MyMemo]”,那么在
    OnGetValue里面可以这样写:
      if ParName = 'MyMemo' then
        ParValue := '要显示的值';
    注意那个中括号是必须要加的
      

  6.   

    第一步:在报表设计器中为报表增加变量,report菜单--variables,点category,为新变量命名为var1,然后在报表中加入text object,点插入表达式(insert expression),点variables页面,双击刚才新建的变量var1,然后退出就行了(也可在文本框的内容中直接输入[var1])。
    第二步:使用fastReport的OnGetValue事件然后添加下面的代码:
    if VarName='var1' then  Value='your string';
    这样就行了啊!值得说明的是在添加variables时必须是category,也就是如果加了类别之后,再在该类别中再加Variables就会有错误!所加的variables必须是category的类型(总类别)。
      

  7.   

    var 
      Memo1: TfrxMemoView; 
     
    Memo1 := frxReport1.FindObject('Memo1') as TfrxMemoView;Memo1就是在frxReport1中使用的控件。
    然后你就可以设置Memo1的属性了。