選取資料 |
答題得分者是:sryang
|
rita.i880
一般會員 發表:19 回覆:35 積分:10 註冊:2007-07-23 發送簡訊給我 |
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
rita.i880
一般會員 發表:19 回覆:35 積分:10 註冊:2007-07-23 發送簡訊給我 |
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
控制是一回事,操作方便是一回事
您想要的需求,是當多選點選時,如不合條件,就取消當筆的選取 但是請問您要用什麼方式通知使用者「不合條件」?ShowMessage?還是其他方式? 如果沒有適當的方式通知使用者「不合條件」,使用者只會看見「我不能選這一筆」而不知道為什麼,於是你將會接到抱怨的電話 如果通知的方式不好,一旦觸發了 DBGrid 取消選取的條件,剛才使用者選好的那些紀錄統統都取消選取了,你還是會接到抱怨的電話 如果你只是想知道有沒有方法可以控制,有一個點你可以試試看:DBGrid.SelectedRows.CurrentRowSelected ===================引 用 rita.i880 文 章=================== 謝謝你的提供的方式, dbgrid 確實不是很方便, 但難道沒有其他的方式以對dbgrid 做控制了嗎 ?
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/ |
rita.i880
一般會員 發表:19 回覆:35 積分:10 註冊:2007-07-23 發送簡訊給我 |
謝謝你的指教, 這樣的控管純粹是程式防呆用的, 再請教一下, dbgrid 某一筆被選取時, 會觸發那個事件呢? 或者由那個地方可以知道此筆資料被選取了呢? ===================引 用 sryang 文 章=================== 控制是一回事,操作方便是一回事 您想要的需求,是當多選點選時,如不合條件,就取消當筆的選取 但是請問您要用什麼方式通知使用者「不合條件」?ShowMessage?還是其他方式? 如果沒有適當的方式通知使用者「不合條件」,使用者只會看見「我不能選這一筆」而不知道為什麼,於是你將會接到抱怨的電話 如果通知的方式不好,一旦觸發了 DBGrid 取消選取的條件,剛才使用者選好的那些紀錄統統都取消選取了,你還是會接到抱怨的電話 如果你只是想知道有沒有方法可以控制,有一個點你可以試試看:DBGrid.SelectedRows.CurrentRowSelected |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
rita.i880
一般會員 發表:19 回覆:35 積分:10 註冊:2007-07-23 發送簡訊給我 |
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
已結案,還是聊一下。
我的做法是,資料表開一個叫做 [選取] 的 bit 欄位(資料庫是 Sql Server),選取畫面的 TAdoDataSet 的 LockType 用 ltBatchOptimistic,在 TDBGrid 上面按兩下,就可以在 [選取和取消選取] 之間切換,也可以改為用右鍵單點來切換,另外有 "全選" 和 "全不選" 兩個按鈕。 在 BeforePost 處理決定能不能被選取 if DataSet.FieldByName('選取').AsBoolean then // 表示剛選取了 begin if DataSet.FieldByName('核准').AsBoolean = false then begin ShowMessage('未經核准不允許選取'); DataSet.Edit; DataSet.FieldByName('選取').AsBoolean := false; DataSet.Post; end; end; // 不可以直接處理 DataSet 的欄位,必須另外用一個 DataSet 讀進來處理,不然變成要呼叫 UpdateBatch(arAll),多人環境會產生衝突。 |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
您好,有原始碼真好,請問,TCheckDBGrid 的 Check Field 是不需要資料表本身有對應 Boolean 欄位的嗎?
公司的 DBGrid 元件是前人開發的,異常複雜,全部沒有註解,我也無法修改,功能包括 1.欄位設定視窗:可以讓使用者新增、刪除欄位,可以記起來供下次載入。 2.一律按 Enter 往右移動,有設定可以選擇按 Enter 要往下還是往右。 3.進入布林欄位,按 Enter 切換 true 和 false。 因為太複雜所以有臭蟲,我不敢改。我自己從網路下載了一個簡單的改良 TDBGrid 元件,以彌補 TDBGrid 沒有 CheckColumn 的嚴重缺點,但資料庫必須有一個對應的 Boolean 欄位,這個改天可以試改看看。 請問,TCheckDBGrid 哪裡下載? ===================引 用 sryang 文 章=================== 是啊,所以那個 TCheckDBGrid 是有原始碼的,cancer 網友可以考慮一下把勾選功能加入公司元件裡面 |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |