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

兩個form互傳資料 再由quickrep列印出來

尚未結案
odyaho
初階會員


發表:60
回覆:104
積分:42
註冊:2005-02-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-25 19:39:51 IP:61.31.xxx.xxx 未訂閱
請問各位大大 小弟目前有兩個form, (form1 , form2) In form1, 有dbgrid , 將dbgird裡的Options->dgMultiSelect改為true 將dbgrid設為可以複選  我想要將選上的資料傳至form2裡的quickrep中 且一頁只印五筆   如果超過五筆  就依序往第二頁印  這要怎樣做呢?? (我知道QRDBText只要將屬性設定  就可以印出來了  可是會印出全部的資料) 請給小弟一個方向  
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-26 02:48:39 IP:221.169.xxx.xxx 未訂閱
odyaho:QuickRep中一定有QRBand其BandType屬性是rbDetail。
假設int n=5; // 一頁只印五筆 
int i=0;
void __fastcall TPrint1::DetailBand1BeforePrint(TQRCustomBand *Sender,
      bool &PrintBand)
{
  i  ;
}
void __fastcall TPrint1::DetailBand1AfterPrint(TQRCustomBand *Sender,
      bool BandPrinted)
{
  if (i < n )
    BandPrinted=true;
  else {
    QuickRep1->NewPage(); // 跳頁,QuickRep1是TQuickRep的Name
    i=0;
  }  
}
請參考!
Andy Chang
------
Andy Chang
odyaho
初階會員


發表:60
回覆:104
積分:42
註冊:2005-02-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-26 08:45:50 IP:202.181.xxx.xxx 未訂閱
Dear andychang1690 ..謝謝您的回覆 再請教您一個問題 小弟目前有兩個form, (form1 , form2) In form1, 有dbgrid , 將dbgird裡的Options->dgMultiSelect改為true 將dbgrid設為可以複選 (Crtl 滑鼠右鍵) 已選取的資料才可以傳至form2裡的quickrep中 要如何做呢?? 謝謝....
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-26 19:20:48 IP:221.169.xxx.xxx 未訂閱
odyaho:form2先include form1。
QuickRep有一個事件為NeedData(TObject *Sender, bool &MoreData)。
我舉例
當然DBGrid複選要複雜多了
void __fastcall TPrint1::QuickRep1NeedData(TObject *Sender, bool &MoreData)
{
  static n=1;
  TDataSet *pDS = Form1->DBGrid1->DataSource->DataSet;
  if ( Form1->DBGrid1->SelectedRows->Count < n) {
    MoreData=false;
    n=1;
  }
  else {
    // 處理你的資料例 
    pDS->GotoBookmark((void *)Form1->DBGrid1->SelectedRows->Items[i].c_str());
    .........      
    n  ;
    MoreData=true;
  }
}
請參考!
Andy Chang
------
Andy Chang
odyaho
初階會員


發表:60
回覆:104
積分:42
註冊:2005-02-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-27 22:00:10 IP:219.81.xxx.xxx 未訂閱
請問一下
void __fastcall TPrint1::QuickRep1NeedData(TObject *Sender, bool &MoreData)
{
  static n=1;
  TDataSet *pDS = Form1->DBGrid1->DataSource->DataSet; //這一段是什麼意思??  不懂
  if ( Form1->DBGrid1->SelectedRows->Count < n) {
    MoreData=false;
    n=1;
  }
  else {
    // 處理你的資料例 
    pDS->GotoBookmark((void *)Form1->DBGrid1->SelectedRows->Items[i].c_str()); 這段也不懂  天啊....
    .........      
    n  ;
    MoreData=true;
  }
}
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-27 23:40:54 IP:221.169.xxx.xxx 未訂閱
引言: 請問一下
void __fastcall TPrint1::QuickRep1NeedData(TObject *Sender, bool &MoreData)
{
  static n=0;
  TDataSet *pDS = Form1->DBGrid1->DataSource->DataSet; //這一段是什麼意思??  不懂
  if ( Form1->DBGrid1->SelectedRows->Count < n) {
    MoreData=false;
    n=0;
  }
  else {
    // 處理你的資料例 
    pDS->GotoBookmark((void *)Form1->DBGrid1->SelectedRows->Items[n].c_str()); 這段也不懂  天啊....
    .........      
    n  ;
    MoreData=true;
  }
}
odyaho:以上只是舉例回應你所謂dbgrid設為可以複選
看一看也應該要懂,不然請問你如何判斷dbgrid所選到的Row?
寫的太急上面n的寫法請自行修正!
Andy Chang
------
Andy Chang
系統時間:2024-04-19 1:22:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!