Q&A

  • [재질문] 퀵레포트에서 제대로 출력이 안되요(디테일벤드)
안녕하세요 이인수입니다.



여기 질문하는거 3번째인거 같네요..

제발 답변좀 부탁드릴게요...



디테일 벤드를 써서요.. 원하는 숫자(a)만큼.. 1부터 차례대로...찍어주려구 하는데요..



1부터 10까지 우선찍는걸 만들어봤거든요...



근데... 디테일벤드가 반복이 안되요... 1만 찍히거든요...



뭐가 문제인건지요...



--------------------------------------------------------------------------

procedure TForm1.QRBand1BeforePrint(Sender: TQRCustomBand;

var PrintBand: Boolean);

begin

showmessage(inttostr(i));

qrLabel.Caption := inttostr(i);



end;



procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;

var PrintReport: Boolean);

begin

i := 1;

end;



procedure TForm1.QRBand1AfterPrint(Sender: TQRCustomBand;

BandPrinted: Boolean);

begin

if i < 10 then begin

inc(i);

end;

end;

-------------------------------------------------------------------------





뭐가 문제인지 알수 없을까요...조언좀 부탁드리겠습니다.



디테일벤드를 반복적으로 출력하는건...디비쿼리가 있어야 되나요?

디비쿼리 필요없다면....



디테일 벤드를 계속 반복하려면.. 어떤 인자를 변경시켜줘야 되나요?



부탁좀 드릴게요...









사실은 디비에서 조별로 건수를
1  COMMENTS
  • Profile
    스타시커 2001.10.08 22:22
    안녕하세요..^^;;



    저도 초보지만..쩝..헤..각설하고..



    아래의 소스를 보시면 이해가 되실듯..



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    QuickRpt, Qrctrls, ExtCtrls, StdCtrls;



    type

    TForm1 = class(TForm)

    QuickRep1: TQuickRep;

    DetailBand1: TQRBand;

    QRLabel1: TQRLabel;

    Button1: TButton;

    procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;

    var PrintReport: Boolean);

    procedure QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);

    procedure Button1Click(Sender: TObject);

    procedure DetailBand1BeforePrint(Sender: TQRCustomBand;

    var PrintBand: Boolean);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;

    i : Integer;



    implementation



    {$R *.DFM}



    procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;

    var PrintReport: Boolean);

    begin

    i := 0;

    end;



    procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);

    begin

    if i < 10 then begin

    inc(i);

    moredata := True ;

    end

    Else

    moredata := False;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    QuickRep1.preview

    end;



    procedure TForm1.DetailBand1BeforePrint(Sender: TQRCustomBand;

    var PrintBand: Boolean);

    begin

    QRLabel1.Caption := IntToStr(i);

    end;



    end.



    퀵레포트의 OnNeeddata이벤트를 이용한 것입니다..



    moredata가 True면 데이타를 계속 읽지요..



    저도 맨땅에 헤딩해서 안 것이기에..왜 이런 지는 잘..쩌비..



    여튼 위 소스적용하시면 1-10이 쭈욱 찍힐 겁니다..



    즐코하세여..^^