在ReportTitle和MasterData区各自加了TfrxMemoView,我想使用代码能在运行时动态设置它显示的文本,MasterData区里的memoview可能有多页。请问怎么做?谢谢。

解决方案 »

  1.   

    可以向指定TfrxMemoView填值的嘛,
      

  2.   

    Function TForm1.GreateFirMemo(Int_Width, Int_Heigth: Integer;
      Str_Name, Str_Text, Str_Parent: String): Boolean;
    Var
      FastMemo: TfrxSysMemoView;
    Begin
      Result := true;
      Try
        FastMemo := TfrxSysMemoView.Create(AFtRpt);
        With FastMemo Do
          Begin
            Top := 0;
            Height := Int_Heigth;
            Width := Int_Width;
            Align := baLeft;
            Text := Str_Text; //设定连接数据库字段
            Frame.Typ := [ftLeft, ftRight, ftTop, ftBottom]; //设定显示四个边
            StretchMode := smMaxHeight; //设定自动伸缩
            Visible := true;
            Printable := true;
            ParentFont := True; //
            If Str_Parent = 'DetailData1' Then
              Parent := (AFtRpt.Components[RetComIndex(Str_Parent)] As TfrxDetailData)
            Else
              Parent := (AFtRpt.Components[RetComIndex(Str_Parent)] As TfrxMasterData);
          End;
      Except
        Result := false;
      End;
      //
    End;procedure TForm1.AFtRptBeforePrint(Sender: TfrxReportComponent);
    var
      Awitch,AHeight :Integer;
    begin
      //参数依次是:  创建 memo的 宽,高,名称,关联字段,创建控件的名称
          GreateFirMemo(Awitch, AHeight, 'FstMemo111' + inttostr(AInt),
            '[FrxDtset_Print."' + AColm.DataBinding.FieldName + '"]', 'DetailData1');
    end;多个创建则循环,赋值什么的,上面就有,如果需要设置left或top自己加上即可