Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[10770] 퀵리포트로 출력하는 소스입니다. 마지막 페이지 인쇄를 안해요 도와주세요.
초보빌더 [sorigae] 1807 읽음    2006-06-23 21:39
아래와 같은 로직으로 출력을 하는데요.
마지막 페이지가 인쇄가 안됩니다.
디버그 모드로 따라가면 분명히 마지막 데이터까지 처리를 하는게 보이는데
화면에는 마지막 페이지가 안나오네요.
한장에 두개의 영수증을 출력하고 만약 gubn_code가 다르면 한장에 한개의 영수증만 출력하고
하나는 빈페이지로 나오게 하거던요.
제가 어떤실수를 하였는지 꼭 잡아주세요.

procedure TfrmReceipt.qrReceiptNeedData(Sender: TObject;
  var MoreData: Boolean);
begin
    if (endPrint) then
    begin
        MoreData := true;
    end
    else
    begin
        MoreData := false;
    end;
end;

procedure TfrmReceipt.qrReceiptBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
    endPrint := true;
end;

procedure TfrmReceipt.detailReceiptBeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
begin
    datMans1.Lines.Clear;
    datMans2.Lines.Clear;

//------------------------------------------------------------------------------
    datCast1.Caption    := Trim(copy(Trim(frmExpnMang.cboCast.Text), 1, Length(Trim( frmExpnMang.cboCast.Text)) - 18)); //방송
    datDate1.Caption    := Trim(frmDb.ADOSubQuery.FieldByName('used_date').AsString); //사용일자
    datUsed1.Caption    := Trim(frmDb.ADOSubQuery.FieldByName('gubn_name').AsString); //사용항목
    datPaper1.Caption   := Trim(frmDb.ADOSubQuery.FieldByName('rece_payx').AsString); //영수증금액
    datMoney1.Caption   := Trim(frmDb.ADOSubQuery.FieldByName('used_mony').AsString); //사용금액

    datMans1.Lines.Add(Trim(frmDb.ADOSubQuery.FieldByName('used_mans').AsString));   //참가자

    if (frmDb.ADOSubQuery.FieldByName('asSplite').AsInteger > 1) then
    begin
        datSplite1.Caption := '[분할 영수증]다른 부착용지를 확인하십시오'; //분할여부
    end
    else
    begin
        datSplite1.Caption := '';
    end;

    datReceipt1.Caption := Trim(frmDb.ADOSubQuery.FieldByName('rece_code').AsString); //영수증코드
//------------------------------------------------------------------------------

    //DB에 영수증이 출력되었다고 저장한다.
    updateRecePutx(Trim(frmDb.ADOSubQuery.FieldByName('expn_code').AsString));

    tmpGubn := Trim(frmDb.ADOSubQuery.fieldByName('gubn_code').AsString);

    frmDb.ADOSubQuery.Next;

    if (tmpGubn = Trim(frmDb.ADOSubQuery.fieldByName('gubn_code').AsString)) then
    begin
        if frmDb.ADOSubQuery.Eof then
        begin
            datCast2.Caption    := ''; //방송
            datDate2.Caption    := ''; //사용일자
            datUsed2.Caption    := ''; //사용항목
            datPaper2.Caption   := ''; //영수증금액
            datMoney2.Caption   := ''; //사용금액

            datMans2.Lines.Add('');    //참가자

            datSplite2.Caption  := ''; //분할여부
            datReceipt2.Caption := ''; //영수증코드

            endPrint := false;
        end
        else
        begin
//------------------------------------------------------------------------------
            datCast2.Caption    := Trim(copy(Trim(frmExpnMang.cboCast.Text), 1, Length(Trim( frmExpnMang.cboCast.Text)) - 18)); //방송
            datDate2.Caption    := Trim(frmDb.ADOSubQuery.FieldByName('used_date').AsString); //사용일자
            datUsed2.Caption    := Trim(frmDb.ADOSubQuery.FieldByName('gubn_name').AsString); //사용항목
            datPaper2.Caption   := Trim(frmDb.ADOSubQuery.FieldByName('rece_payx').AsString); //영수증금액
            datMoney2.Caption   := Trim(frmDb.ADOSubQuery.FieldByName('used_mony').AsString); //사용금액

            datMans2.Lines.Add(Trim(frmDb.ADOSubQuery.FieldByName('used_mans').AsString));   //참가자

            if (frmDb.ADOSubQuery.FieldByName('asSplite').AsInteger > 1) then
            begin
                datSplite2.Caption := '[분할 영수증]다른 부착용지를 확인하십시오'; //분할여부
            end
            else
            begin
                datSplite2.Caption := '';
            end;

            datReceipt2.Caption := Trim(frmDb.ADOSubQuery.FieldByName('rece_code').AsString); //영수증코드
//------------------------------------------------------------------------------
            //DB에 영수증이 출력되었다고 저장한다.
            updateRecePutx(Trim(frmDb.ADOSubQuery.FieldByName('expn_code').AsString));

            qrReceipt.NewPage;

            if frmDb.ADOSubQuery.Eof then
                endPrint := false;

            frmDb.ADOSubQuery.Next;
        end;
    end
    else
    begin
        datCast2.Caption    := ''; //방송
        datDate2.Caption    := ''; //사용일자
        datUsed2.Caption    := ''; //사용항목
        datPaper2.Caption   := ''; //영수증금액
        datMoney2.Caption   := ''; //사용금액

        datMans2.Lines.Add('');    //참가자

        datSplite2.Caption  := ''; //분할여부
        datReceipt2.Caption := ''; //영수증코드

        qrReceipt.NewPage;
       
        if frmDb.ADOSubQuery.Eof then
            endPrint := false;
    end;
end;

+ -

관련 글 리스트
10770 퀵리포트로 출력하는 소스입니다. 마지막 페이지 인쇄를 안해요 도와주세요. 초보빌더 1807 2006/06/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.