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

[請問]一QRTChart 多重列印問題

答題得分者是:Fishman
LEO_HSU
一般會員


發表:2
回覆:5
積分:1
註冊:2005-05-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-28 01:17:38 IP:220.136.xxx.xxx 未訂閱
Dear各位大大: 小弟想在一個QRChart上列印另一Form上的5個Chart圖,已嘗試在OnNeedData輸入下列程式碼卻無法在Preview中預覽與Print請問可否提供一解?Thanks ! void __fastcall TForm2::QuickRep1NeedData(TObject *Sender,bool &MoreData) { switch(Fomr1->CheckData()) { case 1: QRChart1->Chart->Serires[0]->DataSource = MainFrm->Chart1->Series[0] MoreData = true; case 2: QRChart1->Chart->Serires[0]->DataSource = MainFrm->Chart2->Series[0] MoreData = true; case 3: QRChart1->Chart->Serires[0]->DataSource = MainFrm->Chart3->Series[0] MoreData = true; case 4: QRChart1->Chart->Serires[0]->DataSource = MainFrm->Chart4->Series[0] MoreData = true; case 5: QRChart1->Chart->Serires[0]->DataSource = MainFrm->Chart5->Series[0] MoreData = true; case 0: MoreData = false; } } 也就是在Preview中出現的Page都只有一頁,而未出現預期中應為1 of 5 各位大大可直回Delphi的解法,小弟會自行轉換Thanks ! 發表人 - LEO_HSU 於 2005/05/28 01:24:48
Fishman
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-28 09:32:28 IP:210.65.xxx.xxx 未訂閱
Hi LEO_HSU,
1.首先定義一個全域變數
...
  private
    { Private declarations }
    CurrentSeries : Integer;
  public
...    2.QuickReport 的 OnPrint 事件 Reset 該變數
procedure TForm1.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  CurrentSeries := 0;
end;    3.QuickReport 的 OnNeedData 事件
procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
  MoreData := (CurrentSeries < Chart1.SeriesCount);
  if MoreData then
    begin
      QRChart1.Chart.Series[0].Assign(Chart1.Series[CurrentSeries]);
    end;
  Inc(CurrentSeries);
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
LEO_HSU
一般會員


發表:2
回覆:5
積分:1
註冊:2005-05-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-28 12:57:50 IP:61.228.xxx.xxx 未訂閱
Dear FishMan: 我已試過此方法,在QuickRep1->Preview下還是只有一頁 ! 原先小弟以為PageCount的數值為OnNeedData 中MoreData = true的次數,可是當我使用Debug去檢查發現雖然CurrentSeries有增加,但是在Preview中還是只有一頁,無法按下一頁Update QRChart,另外想請問Fishman Sir 我們可否取得在QR default Preview中的按下一頁的事件呢? Thanks !
LEO_HSU
一般會員


發表:2
回覆:5
積分:1
註冊:2005-05-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-28 15:59:07 IP:61.228.xxx.xxx 未訂閱
Hello FishMan: 小弟試出來了只要在 begin QRChart1.Chart.Series[0].Assign(Chart1.Series[CurrentSeries]); QuickRep1.NewPage();//新增此行 end; 即可解決,所以依此看來若資料來源為非DataBase,除使用OnNeedData配合還需其它相關Function一同搭配即可解決. 發表人 - LEO_HSU 於 2005/05/28 16:00:40
系統時間:2024-05-02 14:05:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!