我在程序里面加上下面的语句:
xzfyzfrprintfrm.QuickRep1.DataSet:= ADOQuery1;
出现存储空间不足的错误提示。
如果不加的时候,出现数据,但是所有的qrlabel却看不见了。

解决方案 »

  1.   

    if zcr=true then
       begin
        xzfyzfrprintfrm.QuickRep1.DataSet:= ADOQuery1;
        zcrqrlabelgrp:=TObjectlist.Create;
        zcrqrlabelgrp.OwnsObjects:=false;    zcrQRlabelGrp.Add(xzfyzfrprintfrm.QRLabel2);
        zcrQRlabelGrp.Add(xzfyzfrprintfrm.QRLabel3);
        zcrQRlabelGrp.Add(xzfyzfrprintfrm.QRLabel4);
        zcrQRlabelGrp.Add(xzfyzfrprintfrm.QRLabel5);
        zcrQRlabelGrp.Add(xzfyzfrprintfrm.QRLabel6);
        zcrQRlabelGrp.Add(xzfyzfrprintfrm.QRLabel7);
        zcrQRlabelGrp.Add(xzfyzfrprintfrm.QRLabel8);
        zcrQRlabelGrp.Add(xzfyzfrprintfrm.QRLabel9);
        zcrQRlabelGrp.Add(xzfyzfrprintfrm.QRLabel10);    setlength(xzfyzfrprintfrm.qrdbtext,adoquery1.FieldCount);
        for i:=0 to adoquery1.FieldCount-1 do
          begin
            xzfyzfrprintfrm.qrdbtext[i]:=Tqrdbtext.Create(self);
            xzfyzfrprintfrm.qrdbtext[i].DataSet:=ADOQuery1;
            xzfyzfrprintfrm.qrdbtext[i].DataField:=adoquery1.Fields[i].DisplayName;
            xzfyzfrprintfrm.qrdbtext[i].Parent:=xzfyzfrprintfrm.DetailBand1;
            xzfyzfrprintfrm.qrdbtext[i].Top:=1;
            xzfyzfrprintfrm.qrdbtext[i].Left:=(zcrQRlabelGrp[i] as TQrlabel).Left+(zcrQRlabelGrp[i] as TQrlabel).Width div 5 ;
          end;
          xzfyzfrprintfrm.QuickRep1.Preview;
       end;
      

  2.   

    如果设计的时候就把dataset赋值呢?