在报表的Form中动态创建Qr的QRDBText,QrLabel 等
QrLabel := TQrLabel.Create(Self);
QrLabel.Parent := 某个Band
...
...

解决方案 »

  1.   

    先创建一个报表窗体:repform,放好QuickRep和band.然后
    Procedure      TMainForm.AddLab(NewField:TColumn;var x,y:Integer);
    var
    QText:TQRLabel;
    QDBText:TQRDBText;
    Begin   QText:=TQRlabel.create(self);
       QText.caption:=NewField.title.Caption;
       QText.parent:=repform.columnband;   QDBText:=TQRDBText.create(self);
       QDBText.parent:=repform.detailband;
       QDBText.dataset:=mainform.gridtb;
       QDbText.datafield:=newfield.FieldName ;   QText.left:=x;
       QDbText.left:=x;
       x:=x+newfield.width;
      //repform.
    End;procedure Tmainform.Button1Click(Sender: TObject);
    var
    I:Integer;
    QTop,Qleft:Integer;
    begin
       Qleft:=0;
       Qtop:=0;
         for i:=0 to MyDBgrid.columns.count-1 do
       Begin
         AddLab(MyDbgrid.columns[i],QTop,QLeft);
         End;
     repform.QuickRep.preview;
    end;