Q&A

  • 2~3건 인쇄 후 인쇄 시 [잘못된 연산] 또는 [치명적인 오류] 에러 발생
Delphi3로 출하지시,세금계산서 출력 프로그램을 작성하였습니다

DB insert등 모든처리후 출하지시서 및 세금계산서를 출력하는데 출력하기 직전

또는 한가지만 출력후 "잘못된 연산" 또는 "치명적인 오류" 에러가 나옴니다

(처음에는 정상 출력되다가 2~3건 처리후에... )

퀵레포트로 작성했고 도트프린터2대에 각각 출력을 내보냅니다

아무리 짱구굴려 이리저리 해봐도 도저히 모르겠습니다

제발 도와주세요 (PC는 PII 셀룰론 메모리 64M 입니다)



<프린트 하는 부분 SOURCE>

FrmTaxReport := TFrmTaxReport.Create(self); //세금계산서 양식

PickReport;



Printer.PrinterIndex := 1; //세금계산서 프린터



if printDialog1.Execute then

begin

areport.PrinterSettings.PrinterIndex := printer.PrinterIndex;

end;



aReport.Print;

taxreport.FrmTaxReport.close;

taxreport.FrmTaxReport.Free;

taxreport.FrmTaxReport := nil;



FrmTaxReport2 := TFrmTaxReport2.Create(self); //출하지시서 양식

PickReport2;



Printer.PrinterIndex := 0; //출하지시서 프린터



if printDialog1.Execute then

begin

breport.PrinterSettings.PrinterIndex := printer.PrinterIndex;

end;



bReport.Print;

taxreport2.FrmTaxReport2.close;

taxreport2.FrmTaxReport2.Free;

taxreport2.FrmTaxReport2 := nil;



1  COMMENTS
  • Profile
    김광섭 2001.01.27 23:35
    델초보 wrote:

    > Delphi3로 출하지시,세금계산서 출력 프로그램을 작성하였습니다

    > DB insert등 모든처리후 출하지시서 및 세금계산서를 출력하는데 출력하기 직전

    > 또는 한가지만 출력후 "잘못된 연산" 또는 "치명적인 오류" 에러가 나옴니다

    > (처음에는 정상 출력되다가 2~3건 처리후에... )

    > 퀵레포트로 작성했고 도트프린터2대에 각각 출력을 내보냅니다

    > 아무리 짱구굴려 이리저리 해봐도 도저히 모르겠습니다

    > 제발 도와주세요 (PC는 PII 셀룰론 메모리 64M 입니다)

    >

    > <프린트 하는 부분 SOURCE>

    > FrmTaxReport := TFrmTaxReport.Create(self); //세금계산서 양식

    > PickReport;

    >

    > Printer.PrinterIndex := 1; //세금계산서 프린터

    >

    > if printDialog1.Execute then

    > begin

    > areport.PrinterSettings.PrinterIndex := printer.PrinterIndex;

    > end;

    >

    > aReport.Print;

    > taxreport.FrmTaxReport.close;

    > taxreport.FrmTaxReport.Free;

    > taxreport.FrmTaxReport := nil;

    >

    > FrmTaxReport2 := TFrmTaxReport2.Create(self); //출하지시서 양식

    > PickReport2;

    >

    > Printer.PrinterIndex := 0; //출하지시서 프린터

    >

    > if printDialog1.Execute then

    > begin

    > breport.PrinterSettings.PrinterIndex := printer.PrinterIndex;

    > end;

    >

    > bReport.Print;

    > taxreport2.FrmTaxReport2.close;

    > taxreport2.FrmTaxReport2.Free;

    > taxreport2.FrmTaxReport2 := nil;

    >



    대개 출력할 때...

    //폼을 생성하고

    FrmTaxReport := TFrmTaxReport.Create(self); //세금계산서 양식

    //프린트 용지에 들어갈 내용 셋팅

    ....

    위 내용을 try....finally로 묶으세요.

    프린트 폼을 메모리에서 해제하지 않아서 그럴꺼예요.



    위 내용을 다시쓰면.

    try

    FrmTaxReport := TFrmTaxReport.Create(self); //세금계산서 양식

    //프린트 용지에 들어갈 내용 셋팅

    ....

    finally

    FrmTaxReport.Free;

    end;