線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:760
推到 Plurk!
推到 Facebook!

求教!!!FR打印问题。

尚未結案
xxiaowang
中階會員


發表:51
回覆:75
積分:55
註冊:2005-01-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-14 11:39:41 IP:218.17.xxx.xxx 未訂閱
我用的是Delphi Fastreport2.53, 因为只有一台EPSON LQ-680列印机,要作其它用途,其纸型也缺省为一自定义纸型,但我做这一程式是用A4纸列印。所以我想列印时动态改变列印机纸型为A4,并动态生成报表(有很多Page),列印完后再改回来,请见以下CODE,改变纸型使用Change_Paper。程式中调用两次Change_Paper,一次在Showreport之前,一次在frreport1的onprintreport事件中。结果是在Preview窗中:在ShowReport后纸型能正确显示为A4,但当按下列印后,Preview中的第一page变为此列印机的缺省自定义纸型,其它还是A4,为什么,请前辈指教? procedure TDM.Change_paper; var Device:array[0..cchDeviceName-1] of Char; Driver:array[0..(MAX_PATH-1)] of Char; Port:array[0..32]of Char; hDMode:THandle; pDMode:PDevMode; begin Printer.GetPrinter(Device,Driver,Port,hDMode); if hDMode<>0 then begin pDMode := GlobalLock(hDMode); if pDMode<>nil then begin pDMode^.dmPaperSize :=DMPAPER_A4; pDMode^.dmFields:=pDMode^.dmFields or DM_PAPERSIZE; ResetDC(Printer.Handle,pDMode^); GlobalUnlock(hDMode); end; end; end; procedure TF21.Preview(Sender: TObject); var i,j:integer; Tempstr:string; page:Tfrpage; v:tfrview; begin dm.Change_paper; with SQLQPrint do begin if active then close; dataset.parambyname('PRODUCT_CODE').AsString:=CMBPCODE.Text; open; if (eof=bof) then Abort; frreport1.Clear; i:=0; while not eof do begin frreport1.Pages.Add; page:=frreport1.pages[i] ........ ........ frreport1.showreport; end; end; procedure TF21.frReport1PrintReport; begin dm.Change_paper; end;
xxiaowang
中階會員


發表:51
回覆:75
積分:55
註冊:2005-01-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-17 10:56:32 IP:218.17.xxx.xxx 未訂閱
问题已经解决。
jason
一般會員


發表:5
回覆:8
積分:2
註冊:2002-04-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-31 09:49:24 IP:211.20.xxx.xxx 未訂閱
請問一下大大您是如何解決的?...^^ 因為我也有類似問題,不定時會發生... 謝謝!
系統時間:2024-05-17 11:09:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!