안녕하세요.
스트링 그리드를 이용한 퀵레포트 출력을 하려고 합니다.
preview를 하면 잘 나오는디 print를 클릭하면 타이틀만 찍히고 데이타는 
출력이 안되는군요. 왜 그런지 도대체 모르겠어여..
고수님들이 함 봐주시기 바랍니다.
소스 올려봅니다.
unit Rtest;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Qrctrls, quickrpt, ExtCtrls;
type
  Tqtest = class(TForm)
    QuickRep1: TQuickRep;
    TitleBand1: TQRBand;
    ColumnHead: TQRBand;
    DetailList: TQRBand;
    QRLabel1: TQRLabel;
    QRLabel3: TQRLabel;
    QRLabel4: TQRLabel;
    QRLabel5: TQRLabel;
    QRLabel6: TQRLabel;
    QRLabel9: TQRLabel;
    QRLabel10: TQRLabel;
    QRLbl_purch_unit: TQRLabel;
    QRLabel13: TQRLabel;
    QRLbl_product_date: TQRLabel;
    QRLbl_lot_size: TQRLabel;
    QRLbl_date: TQRLabel;
    QRLbl_outer_pojang_method: TQRLabel;
    QRLbl_lead_time: TQRLabel;
    procedure DetailListBeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);
    procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    procedure TitleBand1BeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);
    procedure QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  qtest   : Tqtest;
  CurItem : Integer; 
implementation
uses test;
{$R *.DFM}
procedure Tqtest.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
//  showmessage('aaa');
end;
procedure Tqtest.TitleBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
//  QRLbl_date.Caption := FDnpmMDL.Query4.FieldByName('SYS_DATE').AsString;
end;
procedure Tqtest.DetailListBeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
  with Form_test.stg_test do 
    begin
    QRLbl_PRODUCT_DATE.Caption        := cells[0,CurItem];
    QRLbl_PURCH_UNIT.Caption          := cells[1,CurItem];
    QRLbl_LOT_SIZE.Caption            := cells[2,CurItem];
    QRLbl_OUTER_POJANG_METHOD.Caption := cells[3,CurItem];
    QRLbl_LEAD_TIME.Caption           := cells[4,CurItem];
    Inc(CurItem);
    end;
end;
procedure Tqtest.QuickRep1NeedData(Sender: TObject;
  var MoreData: Boolean);
begin
 if CurItem < Form_test.stg_test.Rowcount then
    MoreData := CurItem <= Form_test.stg_test.RowCount;
end;
end.
그럼 자세한 답변 부탁드려요.
			 
	
	
    
    
	
	
    
    
    
> 안녕하세요.
>
> 스트링 그리드를 이용한 퀵레포트 출력을 하려고 합니다.
>
> preview를 하면 잘 나오는디 print를 클릭하면 타이틀만 찍히고 데이타는
>
> 출력이 안되는군요. 왜 그런지 도대체 모르겠어여..
>
> 고수님들이 함 봐주시기 바랍니다.
>
> 소스 올려봅니다.
>
> unit Rtest;
>
> interface
>
> uses
> Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
> Qrctrls, quickrpt, ExtCtrls;
>
> type
> Tqtest = class(TForm)
> QuickRep1: TQuickRep;
> TitleBand1: TQRBand;
> ColumnHead: TQRBand;
> DetailList: TQRBand;
> QRLabel1: TQRLabel;
> QRLabel3: TQRLabel;
> QRLabel4: TQRLabel;
> QRLabel5: TQRLabel;
> QRLabel6: TQRLabel;
> QRLabel9: TQRLabel;
> QRLabel10: TQRLabel;
> QRLbl_purch_unit: TQRLabel;
> QRLabel13: TQRLabel;
> QRLbl_product_date: TQRLabel;
> QRLbl_lot_size: TQRLabel;
> QRLbl_date: TQRLabel;
> QRLbl_outer_pojang_method: TQRLabel;
> QRLbl_lead_time: TQRLabel;
> procedure DetailListBeforePrint(Sender: TQRCustomBand;
> var PrintBand: Boolean);
> procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;
> var PrintReport: Boolean);
> procedure TitleBand1BeforePrint(Sender: TQRCustomBand;
> var PrintBand: Boolean);
> procedure QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
> private
> { Private declarations }
> public
> { Public declarations }
> end;
>
> var
> qtest : Tqtest;
> CurItem : Integer;
>
> implementation
>
> uses test;
>
> {$R *.DFM}
>
> procedure Tqtest.QuickRep1BeforePrint(Sender: TCustomQuickRep;
> var PrintReport: Boolean);
> begin
> // showmessage('aaa');
> end;
>
> procedure Tqtest.TitleBand1BeforePrint(Sender: TQRCustomBand;
> var PrintBand: Boolean);
> begin
> // QRLbl_date.Caption := FDnpmMDL.Query4.FieldByName('SYS_DATE').AsString;
> end;
>
> procedure Tqtest.DetailListBeforePrint(Sender: TQRCustomBand;
> var PrintBand: Boolean);
> begin
> with Form_test.stg_test do
> begin
> QRLbl_PRODUCT_DATE.Caption := cells[0,CurItem];
> QRLbl_PURCH_UNIT.Caption := cells[1,CurItem];
> QRLbl_LOT_SIZE.Caption := cells[2,CurItem];
> QRLbl_OUTER_POJANG_METHOD.Caption := cells[3,CurItem];
> QRLbl_LEAD_TIME.Caption := cells[4,CurItem];
> Inc(CurItem);
> end;
> end;
>
> procedure Tqtest.QuickRep1NeedData(Sender: TObject;
> var MoreData: Boolean);
> begin
> if CurItem < Form_test.stg_test.Rowcount then
> MoreData := CurItem <= Form_test.stg_test.RowCount;
> end;
> end.
>
> 그럼 자세한 답변 부탁드려요.
>
--------------------------------------------------------------------------------
그니간 변수 초기화를 안했더니만 구러더군요.
레포트 출력할때 preview 상태에서 print 누르면 계속 증가된 변수를
사용하여 변수가 초기화가 안되면 계속 증가하기 땜시로 스트링 그리드의
데이타를 가져올수가 엄더군요..
procedure Tqtest.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
CurItem := 0; <== 해결한 부분(이게 엄떠서 누적된 값을 계속 사용)
end;
procedure Tqtest.DetailListBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
with Form_test.stg_test do
begin
QRLbl_PRODUCT_DATE.Caption := cells[0,CurItem];
QRLbl_PURCH_UNIT.Caption := cells[1,CurItem];
QRLbl_LOT_SIZE.Caption := cells[2,CurItem];
QRLbl_OUTER_POJANG_METHOD.Caption := cells[3,CurItem];
QRLbl_LEAD_TIME.Caption := cells[4,CurItem];
Inc(CurItem);
end;
end;
저같이 초보자가 실수하기 쉬운 부분인거 가타서 글 올립니다.
만약에 비슷한 증상이 나온다면 참고하세요..