QR套表問題請教 |
尚未結案
|
longsanglin
初階會員 發表:10 回覆:57 積分:43 註冊:2002-04-23 發送簡訊給我 |
各位大大,
拜讀過套表上的相關文章後, 我還是無法解決問題! 所以想請教各位大大, 煩請幫忙.
環境 : Windows2000 or XP + Delphi 7 + EPSON LQ-680C
印表機伺服器內容已設有所以的規格尺寸. Preview時是正確的, 但印出時, Printer還是跳一整頁(66行)無法跳指定的大小(如:中一刀OR中二刀). 不知原因為何? < >< >
程式如下 : (AccountForm內容) procedure TAccountForm.SpeedButton6Click(Sender: TObject); begin inherited; if adotActionD.RecordCount>0 then begin if not ToolsForm.MDIChildExist('TCG3400Form') then Application.CreateForm(TTCG3400Form, TCG3400Form) else begin TCG3400Form.Close; Application.CreateForm(TTCG3400Form, TCG3400Form) end; TCG3400Form.WindowState:=wsMinimized; if CheckBox1.Checked then TCG3400Form.TCG3400rpt.Print else TCG3400Form.TCG3400rpt.Preview; end else MessageBox(Handle,'該活動無資料可列印!!!',PChar('提示'),MB_OK MB_ICONINFORMATION); end; (TCG3400Form內容) unit TCG3400; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, QRCtrls, QuickRpt, ExtCtrls, WinSpool, DB, ADODB; type TTCG3400Form = class(TForm) TCG3400rpt: TQuickRep; QRBand1: TQRBand; QRLabel1: TQRLabel; QRLabel2: TQRLabel; QRLabel3: TQRLabel; QRLabel4: TQRLabel; QRLabel5: TQRLabel; QRLabel6: TQRLabel; QRLabel7: TQRLabel; QRLabel8: TQRLabel; QRBand2: TQRBand; QRBand3: TQRBand; dsPrinterSet: TDataSource; adodsPrinterSet: TADODataSet; adodsPrinterSetDSDesigner: TAutoIncField; adodsPrinterSetAddrPrint36: TWideStringField; adodsPrinterSetAddrPrint48: TWideStringField; adodsPrinterSetPaymentPaper: TWideStringField; adodsPrinterSetOtherPrint: TWideStringField; adodsPrinterSetFaxPrinter: TWideStringField; QRDBText1: TQRDBText; QRShape1: TQRShape; QRShape2: TQRShape; procedure TCG3400rptStartPage(Sender: TCustomQuickRep); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TCG3400rptAfterPreview(Sender: TObject); procedure TCG3400rptAfterPrint(Sender: TObject); private { Private declarations } FOldPrinter: String; FNewPrinter: String; function GetCurrentPrinterName: String; function GetInvPrinterName: String; procedure ChangePrinter(const APrinterName: String); public { Public declarations } end; function SetDefaultPrinter(pszPrinter: PChar): BOOL; stdcall; function GetDefaultPrinter(pszPrinter: PChar; var pcchBuffer : DWORD) : BOOL; stdcall; var TCG3400Form: TTCG3400Form; implementation uses Account, MainDm; function SetDefaultPrinter; external winspl name 'SetDefaultPrinterA'; function GetDefaultPrinter; external winspl name 'GetDefaultPrinterA'; {$R *.dfm} procedure TTCG3400Form.ChangePrinter(const APrinterName: String); begin if APrinterName <> '' then SetDefaultPrinter( PChar( APrinterName ) ); end; function TTCG3400Form.GetCurrentPrinterName: String; var AName: array [0..MAX_PATH] of Char; ASize: Cardinal; begin ASize := SizeOf( AName ); ZeroMemory( @AName[0], ASize ); GetDefaultPrinter( @AName[0], ASize ); Result := AName; end; function TTCG3400Form.GetInvPrinterName: String; begin Result := adodsPrinterSet.FieldByName('PaymentPaper').AsString; end; procedure TTCG3400Form.TCG3400rptStartPage(Sender: TCustomQuickRep); var wYear,wMonth,wDay : Word; begin // QRLabel2.Caption:='茲收到' Trim(AccountForm.adotActionD.FieldByName('SuppName').Value) '人員參加XX所舉辦'; QRLabel4.Caption:=AccountForm.Edit1.Text '整'; if AccountForm.RadioButton1.Checked then QRLabel7.Caption:='XXXXXX' else if AccountForm.RadioButton2.Checked then QRLabel7.Caption:='YYYYYY''; DecodeDate(AccountForm.adotActionM.FieldByName('ActDate').Value,wYear,wMonth,wDay); QRLabel8.Caption:='中 華 民 國 ' IntToStr(wYear-1911) ' 年 ' IntToStr(wMonth) ' 月 ' IntToStr(wDay) ' 日'; end; procedure TTCG3400Form.FormCreate(Sender: TObject); begin adodsPrinterSet.Open; FOldPrinter := GetCurrentPrinterName; FNewPrinter := GetInvPrinterName; if not AccountForm.adotActionD.IsEmpty then ChangePrinter( FNewPrinter ); end; procedure TTCG3400Form.FormClose(Sender: TObject; var Action: TCloseAction); begin ChangePrinter( FOldPrinter ); adodsPrinterSet.Close; TCG3400rpt.Free; Action := Cafree; end; procedure TTCG3400Form.TCG3400rptAfterPreview(Sender: TObject); begin Close; end; procedure TTCG3400Form.TCG3400rptAfterPrint(Sender: TObject); begin Close; end; end. < >< > > |
longsanglin
初階會員 發表:10 回覆:57 積分:43 註冊:2002-04-23 發送簡訊給我 |
|
aa4162
一般會員 發表:1 回覆:2 積分:0 註冊:2004-12-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |