畫面上的圖,跟要列印的圖 ,不一樣 |
尚未結案
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, How doy you print the chart !? Chart1.Print; !?
Chart1.PrintLandscape; !?
or some other methods !? Could you provide source code for Button【Print】!? ----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
我是一個form 放chart 之後
將此chart 傳遞至另一個report form 顯示圖在畫面上的第一個FORM
Frm_Main.CallOutReport(Self,[...,...,...,...,Integer(Chart_Up)]);報表的FORM type ... chart_U_ControlChart: TQRChart; ..... private FU_DrawChart:TCustomChart; ..... ........... procedure TRpt_PhVarControlChart.ProcessArgs(const Args: array of Variant); begin FU_DrawChart:=TCustomChart(Integer(Args[4])); if Assigned(FU_DrawChart) then begin chart_U_ControlChart.SetChart(FU_DrawChart); end; end; |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, 應該就是因為是後來畫上去,所以無法一起 assign 給 報表 form 上的 Chart,改用圖形處理試試,報表 Form (Form2)上改放一個 TImage,然後
procedure TForm1.Button2Click(Sender: TObject); var PIC : TBitMap; Frm2 : TForm2; cw,ch : Integer; begin Frm2 := TForm2.Create(self); cw := Chart1.Width; ch := chart1.Height; Chart1.Width := Frm2.Image1.Width; Chart1.Height := Frm2.Image1.Height; Pic := Chart1.TeeCreateBitmap(clWhite,Chart1.ClientRect); Chart1.Width := cw; Chart1.Height := ch; try frm2.Image1.Picture.Bitmap.Assign(PIC); frm2.ShowModal; finally Frm2.Free; PIC.Free; end; end;不知這樣是否可行? ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, 你可以套用上一篇的概念
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=61965
再把 QRChart 換成 QRImage,然後在 QuickReport 的 OnNeedData 事件
procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); var PIC : TBitMap; begin Inc(CurrentPage); MoreData := (CurrentPage <= TotalPage); if MoreData then begin Chart1.Page := CurrentPage; Pic := Chart1.TeeCreateBitmap(clWhite,Chart1.ClientRect); try QRImage1.Picture.Bitmap.Assign(PIC); finally PIC.Free; end; end; end;如此應該就可以了! ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi seedbcc, 承上篇所言,參考討論 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=61965 步驟與方法完全相同,但是更改兩個地方
1.原先放置於 QuickReport2 上 Detail Band 上的元件由 QRChart 更改為 QRImage 2.QucikReport 的 OnNeedData 事件語法改為
procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); var PIC : TBitMap; begin Inc(CurrentPage); MoreData := (CurrentPage <= TotalPage); if MoreData then begin Chart1.Page := CurrentPage; // 更改 Chart1 目前 Page Pic := Chart1.TeeCreateBitmap(clWhite,Chart1.ClientRect); // 更改過後 Page 的 Chart1 以圖形方式丟給變數 PIC try QRImage1.Picture.Bitmap.Assign(PIC); // 將 PIC 內容塞給 QRImage1 finally PIC.Free; end; end; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |