안녕하세요. 최용일입니다.
> 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;
>