我想根据我查询出来的表的项目来定打印出来的记录如:
QRLABEL1.caption:=adoquery1.fields[0].fieldname;
QRDBTEXT.fieldname:=adoquery1.fields[0].fieldname;
问题是我查询的记录项目不一样,有多有少如果事先放好控件,在查询结果少于放控件的数目时就会出现错误.怎么样做?

解决方案 »

  1.   

    你就动态创建QRLABEL和QRTEXT这样就可以了
      

  2.   

    我曾经这样,可不行
    type
    myQRtabel=array[0..9] of TQRtabel;然后在botton1的click中用
    var
    myQrtabel:TmyQrtabel;
    i=array[0..9] of integer;
    begin
    myQRtabel[i]:=adoquery1.fields[i];
    可编译不过去,为什么?
      

  3.   

    你可以把QRLABEL先全部放在上面,然后根据需要让它的 VISABLE成为FALSE或者TRUE。
      

  4.   

    myQRtabel=array[0..9] of TQRLabel  ?
                               ^^^^^^
      

  5.   

    procedure TForm2.QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
     
      var
    myQrlabel:TQrlabel;
    mydbtext:TQRdbtext;
    SetLength ( MDBText, Count );
    i:integer;
    begin
    i:=0;
    setLength(MyQRlabel,i);
    setLength(MyDBText,i);
    myQRlabel[i].caption:=form1.adoquery1.fields[i].asstring;
    mydbtext[i].fieldname:=form1.adoquery1.fields[i].fieldname;
    end;
    可以吗?