cxGrid 取自選欄位資料方式請教 |
答題得分者是:Jasonwong
|
fireflybug
一般會員 發表:18 回覆:36 積分:15 註冊:2008-07-17 發送簡訊給我 |
各位大大老,菜鳥小弟最近在學DELPHI 7,使用了cxGrid的元件,HELP看到霧薩薩,又沒有範例,試了很久只試出一些基本功能,例如如何逐一抓取cxGrid內的資料:
//計算出共有多少欄位 cxGrid1DBtableView1.ColumnCount; //計算共有多少筆資料 cxGrid1DBtableView1.DataController.RecordCount; //抓第一行第一筆欄位資料 cxGrid1DBtableView1.Controller.SelectedRows[0].DisplayTexts[0]; //取單獨的 行:欄 內的資料(當欄位內的資料是NULL則不算是一個欄位),下面範例取第二行第七個欄位值 //cxGrid1DBtableView1.DataController.GetValue(1,6); 利用這三樣方法配合For迴圈應該就可以把每筆每欄的資料都抓完。 問題來了,目前我開放 cxGrid 可選取多筆資料,例如我按 Ctrl 滑鼠 複選了 第一行與第四行資料,請問我可以用那些方式得知使用者複選了那幾行?抓取相關INDEX? 另外請問我發現使用 CTRL A 可把cxGrid內資料全選,然後再按 Ctrl C 可連同欄位名稱與資料複製到剪貼布,再開啟EXCEL選貼上,資料就完全轉到EXCEL上了,請問用程式有簡易的方式可達成此效果嗎? 另外請問如果要用程式組合如同使用者用手按 Ctrl a 與 Ctrl c 與 Ctrl v 的功能,要怎麼實現呢? 在這裡先謝了。
------
今天的事,留到後天再說.... 編輯記錄
fireflybug 重新編輯於 2009-02-21 19:07:13, 註解 無‧
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
問題來了,目前我開放 cxGrid 可選取多筆資料,例如我按 Ctrl + 滑鼠 複選了 第一行與第四行資料,請問我可以用那些方式得知使用者複選了那幾行?抓取相關INDEX?
cxGrid1DBTableView1.DataController.Controller.Selected // 判斷是否被選取 另外請問我發現使用 CTRL A 可把cxGrid內資料全選,然後再按 Ctrl C 可連同欄位名稱與資料複製到剪貼布,再開啟EXCEL選貼上,資料就完全轉到EXCEL上了,請問用程式有簡易的方式可達成此效果嗎? ExportGrid4ToExcel // 直接從 CXGRID 輸出到 EXCEL
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
fireflybug
一般會員 發表:18 回覆:36 積分:15 註冊:2008-07-17 發送簡訊給我 |
感謝大大回覆,看來大大對cxGrid的用法比較熟練,不知大大若有時間,能否寫幾個cxGrid常用的小技巧與功能分享之?
cxGrid1DBTableView1.DataController.Controller.Selected // 判斷是否被選取 這部份小弟再試試看。 小弟資質愚笨,想再請教 ExportGrid4ToExcel // 直接從 CXGRID 輸出到 EXCEL 這部份如何實現?是否須拉元件或是 USE 什麼才能使用?又它的用法流程是(比方說轉出的檔名之類的)? 找到 ExportGrid4ToExcel 用法,謝謝大大提示^^ uses cxexportgrid4link; var SaveDialog: TSaveDialog; begin SaveDialog:=TSaveDialog.Create(nil); with SaveDialog do begin Filter := '*.xls|*.xls'; if Execute then begin ExportGrid4ToExcel(FileName,vgrid,true,true,true,'xls'); \\ExportGrid4ToEXCEL('d:\wang end; end; SaveDialog.Free; end;
------
今天的事,留到後天再說....
編輯記錄
fireflybug 重新編輯於 2009-02-23 14:26:15, 註解 無‧
fireflybug 重新編輯於 2009-02-23 14:26:55, 註解 無‧ fireflybug 重新編輯於 2009-02-23 14:28:39, 註解 無‧ fireflybug 重新編輯於 2009-02-23 14:30:05, 註解 無‧ |
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
感謝大大回覆,看來大大對cxGrid的用法比較熟練,不知大大若有時間,能否寫幾個cxGrid常用的小技巧與功能分享之?
常用的哦, 你叫我想我想很久還真想不出來耶, 還有, 請記得結案哦...
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
fireflybug
一般會員 發表:18 回覆:36 積分:15 註冊:2008-07-17 發送簡訊給我 |
多行欄位選定後,如何抓取已選取欄位的值,現下我試出範例了:
[code delphi] procedure TBrDeclRelModeC1Form.OP1Click(Sender: TObject); var i:Integer; SelectedRecordCount:Integer; //記錄使用者選取的資料筆數 begin //選了幾筆資料 SelectedRecordCount:=cxGrid1DBTableView1.DataController.Controller.SelectedRecordCount; for i:=0 to (SelectedRecordCount - 1) do //有幾筆資料做幾次回圈 Begin //若有五筆資料,只選1、3筆資料,則 SelectedRecords[i] i = 0時, //抓的是第一筆的第二個欄位資料Values[1] ,如此就可以抓自己想要的資料了 showmessage(cxGrid1DBTableView1.DataController.Controller.SelectedRecords[i].Values[1]); End; end; [/code] 另外想請教,若我想用欄位名稱抓值,不知道用啥方式可辦到?
------
今天的事,留到後天再說....
編輯記錄
fireflybug 重新編輯於 2009-02-24 16:42:24, 註解 無‧
fireflybug 重新編輯於 2009-02-24 16:43:10, 註解 無‧ fireflybug 重新編輯於 2009-02-24 16:46:30, 註解 無‧ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |