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

DBgrid 之picklist問題

尚未結案
danielldf
一般會員


發表:44
回覆:60
積分:20
註冊:2003-05-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-19 23:40:44 IP:218.16.xxx.xxx 未訂閱
在前輩的指導下,可以用picklist做下拉菜單了。但是如何實現選擇一個值後,另外一列的值由此變呢?比如是columns[0]對應物料編碼,columns[1]則顯示對應的物料名稱,columns[2]則顯示物料類別。做了半天,實現弄不出來了,請前輩指教,不勝感激! 努力过,还有什么遗憾呢!
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-20 09:40:38 IP:211.76.xxx.xxx 未訂閱
您好: 你在Query or table上點兩下 field type=>lookup new field 將key fields 、 lookup fields 選擇『物料編碼』 其餘的自行設定 設定完之後DBgrid再選擇新增的這ㄍ欄位就可以了 物料類別一樣的動作再做一次 ~~應無所住而生其心~~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-20 12:22:15 IP:218.15.xxx.xxx 未訂閱
你好,看了这篇你应该会了解了: http://delphi.ktop.com.tw/topic.php?topic_id=23603 试试看。 ——行径窄处,留一步与人行——
danielldf
一般會員


發表:44
回覆:60
積分:20
註冊:2003-05-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-20 23:14:21 IP:218.16.xxx.xxx 未訂閱
好象不行啊-不知我有沒有把意思表達清楚,再說明一下: 首先如圖一,先picklist出現一個下拉菜單(從一個表或者視圖的字段中產生,附圖是四列,實際上只顯示第三列即可),這一功能已經實現了。 其二就是,當選中下菜單的一行後,品名會顯示名稱,同時貨品規格及單價也顯示出來。如下圖所示 努力过,还有什么遗憾呢!
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-24 02:21:22 IP:218.163.xxx.xxx 未訂閱
其實你把PickList想的太神奇了, 當你選擇你所要的資料時, 不會自動將資料帶出, 其它資料還是要自己一個欄位一個欄位的放進去. 我的習慣是在"品名"的TField欄位的OnChange, 當其被觸發時, 再把其它的資料取出, 放到對映的欄位中. 希望對你有所幫助.
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-24 08:55:23 IP:211.22.xxx.xxx 未訂閱
您好: 小弟寫了ㄍ簡單的範例,看是不是你要的http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46976 ~~應無所住而生其心~~
danielldf
一般會員


發表:44
回覆:60
積分:20
註冊:2003-05-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-25 16:31:51 IP:218.16.xxx.xxx 未訂閱
謝謝terrychen兄的實例。我想這基本能實現我需要的的功能。只是還有一點不明白: DBGrid1.Columns[0].PickList.clear; While not ADOQuery1.Eof do begin DBGrid1.Columns[0].PickList.add(ADOQuery1.fieldbyname('Product_no').AsString ',' ADOQuery1.fieldbyname('product_color').AsString ',' ADOQuery1.fieldbyname('suggest_price').AsString ''); ADOQuery1.Next; end 這段代碼只是在columns[0]中增加了picklist,為什麼columns[1],columns[2]也會彈出下拉框呢?沒有代碼,這是如何實現的? 小弟愚笨,還請賜教! 努力过,还有什么遗憾呢!
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-25 17:29:33 IP:61.221.xxx.xxx 未訂閱
您好: 那是因為columns[1],columns[2]是lookup產生的是虛擬的欄位 若是你不要將DBGrid1.Columns[1].ReadOnly:= True; 這樣就不會有了 不過那程式有ㄍ小BUG 你只要將ADOQuery2裡的product_no 的displaywidth、size設成11就可以了 ~~應無所住而生其心~~ 發表人 - Terrychen 於 2004/03/25 17:35:17
danielldf
一般會員


發表:44
回覆:60
積分:20
註冊:2003-05-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-03-25 22:23:28 IP:218.16.xxx.xxx 未訂閱
terrychen兄,太感謝了!我真的受益非淺! 努力过,还有什么遗憾呢!
系統時間:2024-11-26 5:40:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!