怎么左边打印主表的一条记录,右边对应打印从表的多条记录;然后下一个继续?
比如,主从表,左边打一条,右边出从表多条:
_____________
    |C1
M1  |C2
    |C3
-------------
    |C4
M2  |C5
    |C6
-------------

解决方案 »

  1.   

    QuickReport的OnNeedDate事件裏自己寫代碼
      

  2.   

    1、QuickReport的dataset設定爲空
    2、你的QuickReport裏面這樣排列幾個QRLabel
    _____________________________________________
    QRLabel1     QRLabel2
    ---------------------------------------------
    3、以下是code
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, QuickRpt, QRCtrls, DB, ADODB, ExtCtrls;type
      TForm1 = class(TForm)
        QuickRep1: TQuickRep;
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        DetailBand1: TQRBand;
        QRLabel1: TQRLabel;
        QRLabel2: TQRLabel;
        ADOQuery2: TADOQuery;
        procedure QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
        procedure FormClick(Sender: TObject);
        procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;
          var PrintReport: Boolean);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
    begin
    MoreData:=True;
    if ADOQuery1.Eof then
      MoreData:=False
    else
      begin
      if ADOQuery1.FieldValues['MB001']<>ADOQuery2.FieldValues['MB001'] then
      begin
        QRLabel1.Caption:=ADOQuery2.FieldValues['MB001'];
        ADOQuery2.Next;
      end
      else
        QRLabel1.Caption:='';
      QRLabel2.Caption:=ADOQuery1.FieldValues['MC003'];
      ADOQuery1.Next;
      end;
    end;procedure TForm1.FormClick(Sender: TObject);
    beginQuickRep1.Preview;
    end;procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    begin
    ADOQuery1.First;
    ADOQuery2.First;
    end;end.