自製QuickReport的Preview視窗,如何在預覽時設定,紙張大小,邊界,印表機等設定? |
尚未結案
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: 以下程式碼,是我自己寫的 PreView From 上的一些控制 Button,主要是訪元預覽畫面功能,供你參考,其中關於印表機設定在以下紅色字體部分(ToolButton8)
procedure TFormPreview.ToolButton1Click(Sender: TObject); begin QRPreview1.ZoomToFit; end; procedure TFormPreview.ToolButton2Click(Sender: TObject); begin QRPreview1.Zoom := 100; end; procedure TFormPreview.ToolButton3Click(Sender: TObject); begin QRPreview1.ZoomToWidth; end; procedure TFormPreview.ToolButton4Click(Sender: TObject); begin QRpreview1.PageNumber := 1; SetStatusBarText; end; procedure TFormPreview.ToolButton5Click(Sender: TObject); begin IF QRpreview1.PageNumber > 1 THEN QRpreview1.PageNumber := QRpreview1.PageNumber - 1; SetStatusBarText; end; procedure TFormPreview.ToolButton6Click(Sender: TObject); begin IF QRpreview1.QRPrinter.PageCount > QRpreview1.PageNumber THEN QRpreview1.PageNumber := QRpreview1.PageNumber 1; SetStatusBarText; end; procedure TFormPreview.ToolButton7Click(Sender: TObject); begin QRpreview1.PageNumber := QRpreview1.QRPrinter.PageCount; SetStatusBarText; end; procedure TFormPreview.ToolButton8Click(Sender: TObject); begin QRPreview1.QRPrinter.PrintSetup; end; procedure TFormPreview.ToolButton9Click(Sender: TObject); begin QRPreview1.QRPrinter.Print; end; procedure TFormPreview.ToolButton10Click(Sender: TObject); var V_Save : BOOLEAN; begin V_Save := False; IF SaveDialog1.Execute THEN IF FileExists(SaveDialog1.FileName) THEN BEGIN IF Application.MessageBox(PChar('檔案 ' SaveDialog1.FileName ' 已存在,是否取代?' ),'確認取代檔案',MB_ICONINFORMATION MB_YESNO MB_DEFBUTTON2) = IDYES then V_Save := True ELSE V_Save := False; END ELSE V_Save := True; IF V_Save THEN BEGIN IF UpperCase(ExtractFileExt(SaveDialog1.FileName)) = '.CSV' THEN QRPreview1.QRPrinter.ExportToFilter(TQRCommaSeparatedFilter.Create(SaveDialog1.FileName)) ELSE IF (UpperCase(ExtractFileExt(SaveDialog1.FileName)) = '.TXT') THEN QRPreview1.QRPrinter.ExportToFilter(TQRAsciiExportFilter.Create(SaveDialog1.FileName)) ELSE IF (UpperCase(ExtractFileExt(SaveDialog1.FileName)) = '.HTM') OR (UpperCase(ExtractFileExt(SaveDialog1.FileName)) = '.HTML') THEN QRPreview1.QRPrinter.ExportToFilter(TQRHTMLDocumentFilter.Create(SaveDialog1.FileName)) ELSE QRPreview1.QRPrinter.Save(SaveDialog1.FileName); END; { HTML : TQRHTMLDocumentFilter ASCII : TQRAsciiExportFilter CSV : TQRCommaSeparatedFilter} end; procedure TFormPreview.ToolButton11Click(Sender: TObject); begin IF OpenDialog1.Execute THEN BEGIN QRPreview1.QRPrinter.Master := NIL; QRPreview1.QRPrinter.Load(OpenDialog1.Filename); QRPreview1.PageNumber := 1; QRPreview1.PreviewImage.PageNumber := 1; QRPreview1PageAvailable(NIL,1); END; end; procedure TFormPreview.ToolButton12Click(Sender: TObject); begin Close; end; procedure TFormPreview.SetStatusBarText(); begin StatusBar1.SimpleText := '第 ' IntToStr(QRPreview1.PageNumber) ' 頁/共 ' IntToStr(QRPreview1.QRPrinter.PageCount) ' 頁'; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
cmc92
一般會員 發表:3 回覆:13 積分:3 註冊:2003-11-14 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
hi: cmc92,我剛剛試了一下,在 OnNeedData 事件中增加以下之指令,看起來好像可以,你再測試看看
procedure TQueryForm.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); begin Inc(CurrentPage); if ((CurrentPage >= 3) and (CurrentPage <= 6)) then begin // Enable 所有的 Band QRBand1.Enabled := true; QRBand2.Enabled := true; end else begin // Disable 所有的 Band QRBand1.Enabled := false; QRBand2.Enabled := false; end; end;或是也可以在自己寫的預覽視窗中進行控制 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
ellenliu
一般會員 發表:2 回覆:4 積分:1 註冊:2002-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |