下面两端程序完全一样,为和运行后的结果不一样
程序一输出(正确的)
劳保编号,劳保名称,领用数量
1         工作服    2
2         工作帽    2
程序二输出(错误的)
劳保编号,劳保名称,领用数量
1         工作服    2程序1:
unit Unit10;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, QuickRpt, Buttons,
  QRCtrls;type
  TForm10 = class(TForm)
    Label1: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    QuickRep1: TQuickRep;
    BitBtn1: TBitBtn;
    DetailBand1: TQRBand;
    TitleBand1: TQRBand;
    PageHeaderBand1: TQRBand;
    QRLabel1: TQRLabel;
    QRDBText1: TQRDBText;
    QRDBText2: TQRDBText;
    QRDBText3: TQRDBText;
    QRLabel2: TQRLabel;
    QRLabel3: TQRLabel;
    QRLabel4: TQRLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form10: TForm10;implementationuses Unit2;
{$R *.dfm}procedure TForm10.BitBtn1Click(Sender: TObject);
var cxdate:string;
begin
  cxdate:=combobox1.text+combobox2.text;
  qrlabel1.Caption:='青啤二厂'+combobox1.Text+'年'+combobox2.Text+'月份劳保用品汇总统计表';
  with datamodule2.query1 do
  begin
  databasename:='laobao';
  datasource:=datamodule2.lingyongds;
  close;
  sql.clear;
  sql.add('select laobao.laobaono as a,laobao.laobaoname as b,sum(lingyong.lingyongnum) as c');
  sql.add('from laobao,lingyong');
  sql.add('where laobao.laobaono=lingyong.laobaono and lingyong.lingyongtime='+''''+cxdate+'''');
  sql.add('group by laobao.laobaono,laobao.laobaoname');
  open;
  qrdbtext1.dataset:=datamodule2.Query1;
  qrdbtext1.datafield:='a';
  qrdbtext2.DataSet:=datamodule2.Query1;
  qrdbtext2.datafield:='b';
  qrdbtext3.DataSet:=datamodule2.Query1;
  qrdbtext3.DataField:='c';
  quickrep1.Preview;
  end;
end;procedure TForm10.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     action:=cafree;
end;end.程序2:
unit Unit12;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, QuickRpt, QRCtrls, ExtCtrls, StdCtrls, Buttons;type
  TForm12 = class(TForm)
    QuickRep1: TQuickRep;
    PageHeaderBand1: TQRBand;
    DetailBand1: TQRBand;
    QRDBText1: TQRDBText;
    QRDBText2: TQRDBText;
    TitleBand1: TQRBand;
    QRLabel1: TQRLabel;
    QRLabel2: TQRLabel;
    Label1: TLabel;
    Label2: TLabel;
    ComboBox1: TComboBox;
    BitBtn1: TBitBtn;
    ComboBox2: TComboBox;
    QRDBText3: TQRDBText;
    QRLabel4: TQRLabel;
    QRLabel3: TQRLabel;
    Label3: TLabel;    procedure BitBtn1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form12: TForm12;implementationuses Unit2;{$R *.dfm}
procedure TForm12.BitBtn1Click(Sender: TObject);
var
cxdate:string;
begin
  cxdate:=combobox1.Text+combobox2.Text;
  qrlabel3.Caption:='青啤二厂'+combobox1.Text+'年'+combobox2.Text+'月份劳保用品汇总统计表';
  with datamodule2.query1 do
  begin
  databasename:='laobao';
  datasource:=datamodule2.lingyongds;
  close;
  sql.clear;
  sql.add('select laobao.laobaono as a,laobao.laobaoname as b,sum(lingyong.lingyongnum) as c');
  sql.add('from laobao,lingyong');
  sql.add('where laobao.laobaono=lingyong.laobaono and lingyong.lingyongtime='+''''+cxdate+'''');
  sql.add('group by laobao.laobaono,laobao.laobaoname');
  open;
  qrdbtext1.dataset:=datamodule2.Query1;
  qrdbtext1.datafield:='a';
  qrdbtext2.DataSet:=datamodule2.Query1;
  qrdbtext2.datafield:='b';
  qrdbtext3.DataSet:=datamodule2.Query1;
  qrdbtext3.DataField:='c';
  quickrep1.Preview;
  end;end;procedure TForm12.FormClose(Sender: TObject; var Action: TCloseAction);
begin
        action:=cafree;
end;end.