線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1655
推到 Plurk!
推到 Facebook!

DBGrid內的判斷式

缺席
larryleu
初階會員


發表:39
回覆:67
積分:38
註冊:2002-06-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-13 08:50:07 IP:203.73.xxx.xxx 未訂閱
請問各位前輩 在DBGrid裡有三個欄位 一個是客戶編號 一個是編號(流水號) 一個是價格(固定為2000) 要如何判斷 當編號為4時 價格欄位自動輸入2000 編號為9時 價格欄位自動輸入2000 如下莉 客戶編號 編號 價格 A-01 3 2000 A-02 及 A-03 9 2000 也就是說 編號為3時 A-01 的價格欄位為2000 而 編號為9時 A-02 及A-03 的價格欄位為2000 不知各位前輩是否看的懂
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-13 09:54:35 IP:61.221.xxx.xxx 未訂閱
引言: 要如何判斷 當編號為4時 價格欄位自動輸入2000 編號為9時 價格欄位自動輸入2000 如下莉 客戶編號 編號 價格
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin Case DataCol of 2://這裡是代表Columns[這裡的]的值 Begin if 編號 = 4 then DBGrid1.Canvas.TextRect(Rect,Rect.Left,Rect.Top,'2000') ; End; End; end;
------
======================
昏睡~
不昏睡~
不由昏睡~
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-13 09:56:12 IP:61.219.xxx.xxx 未訂閱
你可以在"編號"欄位的onFieldValidate Event依條件寫入"價格"欄位
larryleu
初階會員


發表:39
回覆:67
積分:38
註冊:2002-06-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-13 10:22:16 IP:203.73.xxx.xxx 未訂閱
ko您好 不懂意思 可否細說 謝謝您
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-13 11:19:29 IP:61.221.xxx.xxx 未訂閱
larryleu你好: 我用的是在DBGrid的Events事件中onDrawColumnCell中撰寫那段程式碼 那我就照那code給你翻譯一下  
引言: Case DataCol of 2://這裡是代表Columns[這裡的]的值就是在DBGrid中顯示的位置 Begin if 編號 = 4 then這裡是條件 當編號為4時 DBGrid1.Canvas.TextRect(Rect,Rect.Left,Rect.Top,'2000') ;2000不用說了吧 End;
------
======================
昏睡~
不昏睡~
不由昏睡~
larryleu
初階會員


發表:39
回覆:67
積分:38
註冊:2002-06-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-13 11:52:07 IP:203.73.xxx.xxx 未訂閱
ko您好 有幾個問題想請教您 DataCol 表示什麼 是否要先定義 (因為會出現錯誤訊息) Rect 表示什麼 是否要先定義 因為是了幾次都未能成功 麻煩您 謝謝
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-13 12:22:57 IP:61.221.xxx.xxx 未訂閱
sorry!! 我不太懂你需要的程序! larryleu兄可以先說明何種情況下要將DBGrid的值做變更 1.select 2.edit 3.chang 4.other 請你在檢查一下DBGrid的OnDrawColumnCell與OnDrawDataCell有沒有觸發錯 因為DataCol Rect 在OnDrawColumnCell有定義了
------
======================
昏睡~
不昏睡~
不由昏睡~
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-13 15:39:07 IP:61.219.xxx.xxx 未訂閱
對不起 ko, GridDrawxxxx event 是 wincontrol draw event. 也就是說,windows 每次重劃該 Cell/TRect 都會觸發. 個人認為應如 ccchen 說的才對. (互相漏氣求進步)
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-12-13 17:10:22 IP:61.221.xxx.xxx 未訂閱
是啊!!! 所以我才問程序!!! 多謝你的漏氣~"~
------
======================
昏睡~
不昏睡~
不由昏睡~
larryleu
初階會員


發表:39
回覆:67
積分:38
註冊:2002-06-19

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-12-16 10:20:37 IP:203.73.xxx.xxx 未訂閱
KO您好 我把需求重訴一遍希望您能看的懂 在Table中有一個DBGrid 在DBGrid中共有會員編號 會員姓名 編號 及價格 四個欄位 如下 會員編號 會員姓名 編號 價格 當按下新增資料時 會員編號及會員姓名由user自行輸入 而編號自動產生編號(流水號) 至於價格欄位則為空白 若資料新增至編號為4時 在第一筆會員資料的價格欄位會自動填入2000 如上 新增至編號為13時 在第5及第6筆會員資料的價格欄位會自動填入2000 不知上述是否有法可解 謝謝您 ps:資料庫Access 會員編號姓名皆為文字型態 而編號及價格則為字型型態 Access有沒有資料量的限制
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2002-12-16 16:56:22 IP:61.221.xxx.xxx 未訂閱
larryleu你好:    看來你是要在edit完成後在update編號數量x3倍的$$變2000 那要更動資料庫的話建議你用ccchen大大的意見在  
引言: 你可以在"編號"欄位的onFieldValidate Event依條件寫入"價格"欄位
如果只是單純用來"看"那用我的方式就可以了 只是 資料顯示(或 update)時間點的判定你自己給條件!!
------
======================
昏睡~
不昏睡~
不由昏睡~
larryleu
初階會員


發表:39
回覆:67
積分:38
註冊:2002-06-19

發送簡訊給我
#12 引用回覆 回覆 發表時間:2002-12-16 19:01:54 IP:211.22.xxx.xxx 未訂閱
可有範例可參考
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#13 引用回覆 回覆 發表時間:2002-12-23 04:08:35 IP:61.59.xxx.xxx 未訂閱
不知onFieldValidate在哪裡
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#14 引用回覆 回覆 發表時間:2002-12-23 09:24:12 IP:61.219.xxx.xxx 未訂閱
引言: 不知onFieldValidate在哪裡
TField OnValidate Event. 你須先於 design time create TFields. /* 使用中文很辛苦,中華男兒當自強 */
系統時間:2024-11-23 3:49:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!