Q&A

  • Re: 퀵 리포트에서 레코드 출력
안녕하세요. 최용일입니다.



> procedure TPrtTableDlg.QuickRep1BeforePrint(Sender: TQuickRep;

> var PrintReport: Boolean);

> var rec_cnt :integer; <= 유효 범위 QuickRep1BeforePrint내에서만

> begin

> rec_cnt := 0; // 없어도 되는 코드 이 줄에서 warning발생...

> end;

>

>

> procedure TPrtTableDlg.QuickRep1NeedData(Sender: TObject;

> var MoreData: Boolean);

> var rec_cnt :integer; <= 유효 범위 QuickRep1NeedData내에서만

> begin // 초기 rec_cnt값 = 0

> if rec_cnt = 10 then // 0 <> 10 이므로 else문으로 점프

> begin // 아래 begin...end 구문은 절대 실행 안됨... 없어도 되는 코드...

> quickrep1.NewPage;

> rec_cnt :=0;

> end

> else

> begin

> inc(rec_cnt); // rec_cnt를 하나 증가

> end

>

> end;



rec_cnt란 변수를 QuickRep1BeforePrint, QuickRep1NeedData 두 개의 메소드에서 동시에



접근이 가능하도록 메소드 외부에 선언하세요. 즉 두개의 메소드에 있는



var rec_cnt :integer;



위의 선언을 빼고 전역변수나 유닛의 지역변수, TPrtTableDlg의 속성이나 멤버변수중의



하나로 선언하세요.



^^ 항상 즐코하세요.



최영근 wrote:

> 안녕하세요 ?

> 델파이 동호회에서 많은 가르침과 도움을 받고있는 회원입니다.

> 이번 기회를 빌어 게시판에 글을 올리시는 많은 분들에게 고마움을 전합니다.

>

> 그건 그렇고,

> 요번에 사무실에서 거래 명세표를 인쇄하려고 하는데

> 거래 명세표 양식이 이미 용지로 있어서 도트 프린터에다 걸어서 인쇄하려고 한답니다.

> 그런데 레코드가 10개씩 인쇄되는 양식이라서

> quick report 에서 10개씩 출력되게끔 코딩을 하고 있는데

> (quick report 에서 beforeprint 와 OnNeedData 처리)

> 이상하게도 모든 레코드가 출력이 되고 있습니다.

> 어디가 잘못된 것인가요 ?

> 컴파일을 하면 error 는 아니지만

> warning message 로 'value asigned to rec_cnt never used'

> 라는 메시지가 뜨고 있습니다.

> 그럼 고수님들의 답변을 기대해 봅니다.

>

>

>

> 델파이 3.0 퀵리포트 2.0

> 쿼리 사용

>

>

> procedure TPrtTableDlg.QuickRep1BeforePrint(Sender: TQuickRep;

> var PrintReport: Boolean);

> var rec_cnt :integer;

> begin

> rec_cnt := 0;

> end;

>

>

> procedure TPrtTableDlg.QuickRep1NeedData(Sender: TObject;

> var MoreData: Boolean);

> var rec_cnt :integer;

> begin

> if rec_cnt = 10 then

> begin

> quickrep1.NewPage;

> rec_cnt :=0;

> end

> else

> begin

> inc(rec_cnt);

> end

>

> end;

>

0  COMMENTS