Q&A

  • 출력 하다가 갑자기 다운되요~~
메일 발송을 위해 보통 12,000부정도 되는 봉투를 출력하는데
넘~ 많으니까~ 한번에 2~3000부씩 출력합니다...

그런데 1,000부가 못되서 갑자기 프린트가 중단되버려요~
200부 출력하다가 그럴때도~ 있고... 많으면 800부 출력하다가
중단될때도 있고...

그래서~ 프린트 제어에 가서 인쇄를 취소 시켜도 말을 듣지 않고 그대로~ 다운되버려요...
어쩔수없이 다시 컴터를 재가동 해야하구요...

아래 소스는 출력되는 봉투에 대한 소스입니다~~~
고수님들의 현명한 설명을 부탁드립니다... ^^

unit uMPrintR;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  quickrpt, Qrctrls, ExtCtrls, Db, DBTables;

type
  TfMPrintR = class(TForm)
    QuickRep1: TQuickRep;
    QRBand1: TQRBand;
    dbtPost: TQRDBText;
    lbName: TQRLabel;
    lbAddress: TQRLabel;
    procedure QuickRep1BeforePrint(Sender: TCustomQuickRep;
      var PrintReport: Boolean);
    procedure QRBand1BeforePrint(Sender: TQRCustomBand;
      var PrintBand: Boolean);
  private
    Way : Integer;
    { Private declarations }
  public
    property FWay : Integer write Way;
    { Public declarations }
  end;

var
  fMPrintR: TfMPrintR;

implementation

uses uDM;

{$R *.DFM}



procedure TfMPrintR.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  Case Way of
    1:begin  // 큰 봉투
        QuickRep1.Page.Length := 254.0;
        QuickRep1.Page.Width  := 350.0;
        QRBand1.Size.Height := 214.7;
        QRBand1.Height      := 768;
        lbName.Font.Size := 12;
        lbAddress.Font.Size := 12;
        dbtPost.Font.Size := 14;

        lbName.Left  := 550;
        lbName.Top   := 500;
        lbAddress.Left  := 550;
        lbAddress.Top   := 530;
        dbtPost.Left  := 700;
        dbtPost.Top   := 600;
      end;
    2:begin
        QuickRep1.Page.Length := 114.33;
        QuickRep1.Page.Width  := 241.0;
        QRBand1.Size.Height := 105.8;
        QRBand1.Height      := 398;
        lbName.Font.Size := 10;
        lbAddress.Font.Size := 10;
        dbtPost.Font.Size := 12;

        lbName.Left  := 352;
        lbName.Top   := 225;
        lbAddress.Left  := 352;
        lbAddress.Top   := 245;
        dbtPost.Left  := 482;
        dbtPost.Top   := 305;
      end;
    end;
end;

procedure TfMPrintR.QRBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
var Tmp : String;
begin
  with DM.qMLable do
  begin
  // 다량발송인 경우 메모에 있는 발송권수가 나오도록
    if FieldByName('MagazineCd').AsString = '900' then
      Tmp := ' 귀하('+FieldByName('Memo').AsString+')'
    else
      Tmp := ' 귀하';

    if FieldByName('dvsn').AsString = '1' then
    begin
      if copy(FieldByName('Position_$chrp').AsString,1,1) <> '1' then
        lbName.Caption := FieldByName('Name').AsString+Tmp
      else
        lbName.Caption := FieldByName('Name').AsString+FieldByName('ChrpNm').AsString+Tmp;
    end
    else lbName.Caption := FieldByName('Name').AsString+Tmp;

    lbAddress.Caption := FieldByName('Sido').AsString+' '+FieldByName('Gugun').AsString+' '+
                         FieldByName('Dong').AsString+' '+FieldByName('Note').AsString;
  end;
end;

end.
0  COMMENTS