列印後自動關 QuickReport |
尚未結案
|
eric039
中階會員 發表:57 回覆:126 積分:51 註冊:2002-11-30 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
eric039
中階會員 發表:57 回覆:126 積分:51 註冊:2002-11-30 發送簡訊給我 |
|
aj0724
一般會員 發表:11 回覆:41 積分:10 註冊:2003-04-18 發送簡訊給我 |
|
eric039
中階會員 發表:57 回覆:126 積分:51 註冊:2002-11-30 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
eric039
中階會員 發表:57 回覆:126 積分:51 註冊:2002-11-30 發送簡訊給我 |
|
T.J.B
版主 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
你如果用delphi的預設報表功能的畫面 應該是沒辦法 不過你問的問題其實可以解決的
因為我的專案也是這麼做的
1 :首先你必須自己作一組 button 跟 Preview 上面ToolBar的button 功能性相同
2:然後把Preview放在form上
3:在自設列印的那顆按鈕上 在列印完後做關閉form的動作就可以了
下面的程式碼你可以做參考 重點在列印的那顆按鈕上
procedure TfrmR0Tax_Detail.SpBtnClick(Sender: TObject); function FindQuickRep: TQuickRep; //搜尋目前 Form 中的 QuickRep 元件 var i: Integer; begin Result := Nil; for i := 0 to ComponentCount - 1 do begin if Components[i].ClassType = TQuickRep then begin Result := TQuickRep(Components[i] as TQuickRep); break; end; end; end; var j: Integer; begin j := FindQuickRep.QRPrinter.PageCount; //j 會隨時變動, 用以抓取目前的最後一頁 (非報表真正的最後一頁) if pagecnt<>TotPages then exit else if Sender = Spbtn1 then //Zoom to fit QRPreview1.ZoomToFit else if Sender = Spbtn2 then //100% QRPreview1.Zoom := 100 else if Sender = Spbtn3 then //Zoom to Width QRPreview1.ZoomToWidth else if Sender = Spbtn4 then //First Page begin QRPreview1.PageNumber := 1; StsBar.Panels[1].Text := '第 ' IntToStr(QRPreview1.PageNumber) ' / ' IntToStr(TotPages) ' 頁'; end else if Sender = Spbtn5 then //Prior Page begin if QRPreview1.PageNumber > 1 then QRPreview1.PageNumber := QRPreview1.PageNumber - 1; StsBar.Panels[1].Text := '第 ' IntToStr(QRPreview1.PageNumber) ' / ' IntToStr(TotPages) ' 頁'; end else if Sender = Spbtn6 then //Next Page begin if QRPreview1.PageNumber < TotPages then QRPreview1.PageNumber := QRPreview1.PageNumber 1; StsBar.Panels[1].Text := '第 ' IntToStr(QRPreview1.PageNumber) ' / ' IntToStr(TotPages) ' 頁'; end else if Sender = Spbtn7 then //Last Page begin QRPreview1.PageNumber := j; //目前所跑到的最後一頁或報表真正的最後一頁 StsBar.Panels[1].Text := '第 ' IntToStr(QRPreview1.PageNumber) ' / ' IntToStr(TotPages) ' 頁'; end else if Sender = Spbtn8 then //Printer Setup FindQuickRep.PrinterSetup else if Sender = Spbtn9 then //Print begin FindQuickRep.Print ; frmR0Tax_Detail.Close; <----重點 end else if Sender = Spbtn10 then //Save Report SaveDlg.Execute else if Sender = Spbtn11 then //Load Report OpenDlg.Execute else if Sender = Spbtn12 then //Close Self.Close; end天行健 君子當自強不息~~@.@
------
天行健 君子當自強不息~~@.@ |
懷舊的人
高階會員 發表:28 回覆:152 積分:141 註冊:2003-01-08 發送簡訊給我 |
|
eric039
中階會員 發表:57 回覆:126 積分:51 註冊:2002-11-30 發送簡訊給我 |
|
懷舊的人
高階會員 發表:28 回覆:152 積分:141 註冊:2003-01-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |