Q&A

  • 스트링 그리드를 이용한 출력..?
안녕하세요.



스트링 그리드를 이용한 퀵레포트 출력을 하려고 합니다.



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.



그럼 자세한 답변 부탁드려요.



1  COMMENTS
  • Profile
    sonic0 2000.12.13 00:17
    sonic0 wrote:

    > 안녕하세요.

    >

    > 스트링 그리드를 이용한 퀵레포트 출력을 하려고 합니다.

    >

    > 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;



    저같이 초보자가 실수하기 쉬운 부분인거 가타서 글 올립니다.



    만약에 비슷한 증상이 나온다면 참고하세요..















    • 퇴근하고싶다.
      2000.12.13 04:05
      급궁금 wrote: > StringGrid에서 0칼럼셀마다 체크박스를 어떤분이 올려주신 아래의 소스를 이용하여 > ...
    • 김진선
    • 2000.12.13 00:43
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이수정
      2000.12.14 01:56
      저희는 이렇게 합니다.... 자기 그룹 안에 올라오는 컴포넌트들... form, groubbox, panel... 등등.. ...
    • 배인철
      2000.12.13 18:07
      김진선 wrote: > 제 컴은 윈도우2000서버를 쓰고요 델 버전은 5.0을 사용합니다. > 만드는 프로그램의 기...
    • 강인규
      2000.12.13 03:03
      폰트 설정하실때 언어인가? 그걸 한국어로 맞춰보셨나요? 98하고는 조금 다르게 나오지만 그래도 볼만은 ...
    • 초보자
      2000.12.13 02:02
      김진선 wrote: > 제 컴은 윈도우2000서버를 쓰고요 델 버전은 5.0을 사용합니다. > 만드는 프로그램의 기...
    • 손님
      2000.12.13 18:55
      종이학 wrote: > A프로그램에서 B프로그램을 실행하도록 했는데.. > ShellExecute(handle,'open',PChar('...
    • 최월자
    • 2000.12.12 22:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김종언
      2000.12.12 23:37
      님이 올리신 질문을 보니깐... inline view를 사용하고 있군요.. 그건 당근... 파라독스에선 사용할수가...
    • sonic0
    • 2000.12.12 22:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • sonic0
      2000.12.13 00:17
      sonic0 wrote: > 안녕하세요. > > 스트링 그리드를 이용한 퀵레포트 출력을 하려고 합니다. > > pre...
    • 이화
    • 2000.12.12 22:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 컴맹...
      2000.12.12 23:12
      꼭 콘솔이어야 합니까..? 델파이로 콘솔프로그램을 한다니... 델파이에서는 이렇게 처리하거든여... P...
    • 미나
    • 2000.12.12 22:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • kiwi
      2000.12.13 03:11
      곰탱이 wrote: > 윗버전에서 코딩한 프로그램을 아랫버전에서 다시 작업하고 실행히킬려면... > 다시말해...
    • 곰탱이
      2000.12.13 07:28
      kiwi wrote: > 곰탱이 wrote: > > 윗버전에서 코딩한 프로그램을 아랫버전에서 다시 작업하고 실행히킬려...
    • 류응철
      2000.12.16 22:25
      곰탱이 wrote: > kiwi wrote: > > 곰탱이 wrote: > > > 윗버전에서 코딩한 프로그램을 아랫버전에서 다...
    • 안나
    • 2000.12.12 20:50
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 양용민
      2000.12.13 18:38
      [제가 쓰고 있는 방법인데요. 그림화일을 MS-SQL서버의 Image 필드에 추가하는 방법입니다. 밑에 소스...
    • 김문석
      2001.06.02 01:42
      님 덕분에 큰 고민거리 하나 해결 했네요 ^^ 복 많이 받으세요 ^^
    • 안나
      2000.12.13 20:46
      죄송합니다만... 다시한번만 봐주세요... 제가 코드를 응용하는것이 아직 부족해서.... 좀더 설명을 해주...
    • 양용민
      2000.12.13 22:21
      제 경우는 ADO사용한 경우이며 MSSQL서버의 필드 타입이 Image타입. 그리고 저장된 image필드의 내용을 ...
    • 권경미
      2000.12.12 20:55
      델파이사랑 wrote: > 그냥..간단한 건데 잘안되네여.. > 디비에 있는 내용을 출력하는 건데..잘안돼서.....
    • 델파이사랑
      2000.12.12 21:32
      권경미 wrote: > 델파이사랑 wrote: > > 그냥..간단한 건데 잘안되네여.. > > 디비에 있는 내용을 출력...
    • 김태용
    • 2000.12.12 20:38
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.12.12 21:24
      왜 그런지는 모르겠지만 파라독스에서 날짜관련 쿼리가 타잎에러를 내는 경우가 많이 있습니다. 아주 머리...
    • 김태용
      2000.12.12 21:48
      강인규님 감사합니다 그렇해 하니까 잘되네요 5시간 작업을 해결해 주셨네요 어떻해 은혜를 갚어야 할...
    • 권경미
      2000.12.12 20:44
      김태용 wrote: > paradox에서 날짜가 코딩으로 해서 날짜가 입력이 안됩니다 > 어떻해 하면 돼죠? > >...
    • 김태용
      2000.12.12 21:05
      권경미 wrote: > 김태용 wrote: > > paradox에서 날짜가 코딩으로 해서 날짜가 입력이 안됩니다 > > 어...
    • 하데스
      2000.12.12 22:03
      case문이 이해가 되지 않는 모양인데... 쉽게 생각하시면 됩니다.. 같은 이름으로 tagTest를 3개 선언한...
    • 양병규
      2000.12.13 00:35
      가능합니다. 물론 델파이에 있는건 안되고... 다른놈을 쓰면됩니다. 자료실에 올려두지요... 그...
    • 김하늘
      2000.12.13 18:13
      감사합니다. 근데 이미지 삽입도 되나봐여.... 양병규 wrote: > 가능합니다. 물론 델파이에 있...
    • 권경미
      2000.12.12 20:18
      사발우성 wrote: > 안뇽 하신가여 고수님들 제가 마이다스에 관해서 질문좀 할라구 함다... > > 현재 ...
    • 김형준
      2001.04.27 09:42
      제가 사용해본결과 ClientDataSet에서는 table component 의 기능과 query component 의 기능 두가지가 ...