已经设计好了报表的界面,但里面的字段较多,且每次所用的字段都不样,需要在每次打印时,用程序分别对每个QRDBText进行字段的设置,QRDBText的编号是从1-32顺序排列的,应该怎么通过循环语句进行设置?

解决方案 »

  1.   

    for i := 1 to 32 do
    begin
      (FindComponent('QRDBText'+inttostr(i)) as TQRDBText).caption := inttostr(i);
    end;
      

  2.   

    procedure TFormgzshow.Button1Click(Sender: TObject);
    var i:integer;
    begin
    try
    formprint2.QuickRep1.DataSet:=adotable1;
    formprint2.QRLabel33.Caption:=gzny+'期工资条';
    for i:=0 to dbgrid1.FieldCount-1 do
    begin
    (FindComponent('formprint2.QRDBText'+inttostr(i+1)) as TQRDBText).dataset:=adotable1;
    (FindComponent('formprint2.QRDBText'+inttostr(i+1)) as TQRDBText).datafield:=dbgrid1.Fields[i].FieldName;
    end;
    formprint2.QuickRep1.Preview;
    except
    showmessage('打印出错!');
    end;end;
    报undeclared identifier:'TQRDBText' 和'dataset',
    及operator not appelicable to this operand type错误