全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1266
推到 Plurk!
推到 Facebook!

畫面上的圖,跟要列印的圖 ,不一樣

尚未結案
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-21 18:28:23 IP:221.169.xxx.xxx 未訂閱
畫面上的圖,(第一個form ,上面有個按鈕 "列印") 按完列印後==>跟要列印的圖(第二個form) ,不一樣 畫面上的線條 是後來自行繪制上去的    
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-22 16:44:45 IP:210.65.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-23 09:09:14 IP:221.169.xxx.xxx 未訂閱
我是一個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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-23 12:24:35 IP:210.65.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-23 13:07:24 IP:221.169.xxx.xxx 未訂閱
fishman大大 應該就是因為是後來畫上去 沒有錯 不過,放image的話,若圖有兩頁以上要怎麼辦 而且 第二個form是報表
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-23 13:34:40 IP:210.65.xxx.xxx 未訂閱
Hi seedbcc,    你的報表是用何種工具呢?     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-23 15:13:59 IP:221.169.xxx.xxx 未訂閱
感恩啦 quickreport
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-12-23 15:44:44 IP:210.65.xxx.xxx 未訂閱
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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-12-23 15:53:41 IP:221.169.xxx.xxx 未訂閱
還是不太清楚 若二頁的圖 如何傳給 報表呢?
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-12-24 08:59:19 IP:210.65.xxx.xxx 未訂閱
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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-12-24 09:13:00 IP:221.169.xxx.xxx 未訂閱
謝謝大大的回答 有問題 再請教您了
系統時間:2024-06-24 20:19:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!