unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, QuickRpt, QRCtrls, DB, ADODB, ExtCtrls, StdCtrls;type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    Button1: TButton;
    ADOQuery1: TADOQuery;
    QuickRep1: TQuickRep;
    DetailBand1: TQRBand;
    QRDBText1: TQRDBText;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 车间效率');
ADOQuery1.Open;
ADOQuery1.First;
while ADOQuery1.Eof do
begin
QRDBText1.DataField:=ADOQuery1.FieldByName('序号').AsString;
ADOQuery1.Next;
end;
quickrep1.Preview;
end;
end.

解决方案 »

  1.   

    搞错了,看看demo,不需要挨个赋值。只需要指定数据集就可以了。
      

  2.   

    quickrep属性里面有指定数据集,把数据集关联好。
      

  3.   

    quickrep.dataset:= ADOQuery1;
    QRDBText1.DataField:= 字段名
    QRDBText1.Dataset:= adoquery1.
    不需要下面的代碼:
    ADOQuery1.First;
    while ADOQuery1.Eof do
    begin
    QRDBText1.DataField:=ADOQuery1.FieldByName('序号').AsString;
    ADOQuery1.Next;
    end; 
      

  4.   

    QuickReport2.DataSet=Form1.ADOQuery1 //否则出现单行
    ADOQuery1.Active:=True //否则没有数据显示接分..