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

請問DBGrid欄位能做DBLookupComboBox功能否

尚未結案
marklue
一般會員


發表:33
回覆:55
積分:17
註冊:2005-02-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-01 17:30:56 IP:203.73.xxx.xxx 未訂閱
請問各位先進 在DBGrid在編輯模式能夠讓欄位出現下拉是選單否,如DBLookupComboBox可以指向另一個資料庫(如產品檔的產品名稱)並帶入值(如產品編號) 謝謝!
pillar62
資深會員


發表:9
回覆:324
積分:271
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-01 17:37:52 IP:210.64.xxx.xxx 未訂閱
你好 在dbgrid的column裡面有一個pickList的屬性,可以在開畫面的時候,將要給的資料用跑回圈的方式寫入,他的方式就是類似ComBoBox的處理方式!!但是並沒有類似DBLookupComboBox的處理方式!!試試看吧!! Pillar Wang
------
Pillar Wang
lcjan
初階會員


發表:11
回覆:60
積分:29
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-02 00:27:41 IP:218.170.xxx.xxx 未訂閱
請在你的TTable或TQuery中 --> Fields Edit --> New Field --> Field Type請選擇Lookup, 此時你必須先準備好另一個DataSet,也就是對照表的部分,並設定對應鍵值與顯示欄位.當你對主Dataset下Insert時DbGrid上的Lookup欄位就可以下拉. Table2, 對照檔, 通常只由資料庫中查出代碼與名稱 Table1, 主Table, 除原有的欄位外另建立一個LookUp欄位, 並設定索引欄位為Tabl2之代碼即可.
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-02 09:50:10 IP:202.62.xxx.xxx 未訂閱
您好﹗    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=68157    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
marklue
一般會員


發表:33
回覆:55
積分:17
註冊:2005-02-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-04-03 01:04:10 IP:203.73.xxx.xxx 未訂閱
首先感謝pillar62、lcjan與cashxin2002三位先進位小弟解惑 以下引用cashxin2002版主的話 有關計算欄位的功能﹐我們通常使用的有兩種﹐一種是計算性欄位(fkCalculated)﹐另外一種是搜索性欄位(fkLookup)﹐一般來講﹐計算欄位是無法單獨依靠DBGrid元件來完成的﹐而是在資料集元件的欄位編輯器中新增(New Field...)﹐再由DBGrid元件負責顯示﹒ 計算性欄位(fkCalculated)設定方法﹕ Step1. 關閉資料集元件﹐在資料集元件的欄位編輯器中點擊[New Field...]﹐開啟NewField對話方框﹒ Step2. 在NewField對話方框中輸入Name(欄位名稱)﹐Type(欄位資料形態)﹐并將Field type選定為Calculated﹐單擊[OK]鍵后完成新增欄位動作﹒ Step3. 在資料集元件的OnCalcFields事件中加入如下程式碼后﹐將資料集元件Open Table1.FieldByName('新增欄位名稱').Value := 欄位值; P.S: 完成設定后并將資料集元件Open后﹐此計算欄位不會顯示對應的資料值﹐只有在執行時期才可以顯示出對應的資料值﹒ 搜索性欄位(fkLookup)的設定方法﹕ Step1. 關閉資料集元件﹐在資料集元件的欄位編輯器中點擊[New Field...]﹐開啟NewField對話方框﹒ Step2. 在NewField對話方框中輸入Name(欄位名稱)﹐Type(欄位資料形態)﹐Size(欄位長度)并將Field type選定為Lookup﹐再分別設定KeyFields為原有欄位名稱﹐DataSet為被搜索的資料集元件﹐Lookup Keys為搜索的目標欄位名稱﹐Result Field為傳回值欄位名稱﹐單擊[OK]鍵后完成新增欄位動作﹒ Step3. 將資料集元件Open P.S: 完成設定后并將資料集元件Open后﹐此計算欄位不會顯示對應的資料值﹐只有在執行時期才可以顯示出對應的資料值﹒ 根据您的要求酌情選擇使用何種計算性欄位﹒ 我的需求是屬於搜索性欄位[fkLookup] 可是因為初學,這篇文章我研究了三天才發覺自己問題出在哪裡 說出來讓以後有需要的人作為參考 1.在Step1時候,記得欄位一定要手動加入,雖然沒有加入內定還是會全部顯示,但在Step2就會有無法選擇的問題。 2.在Step2時,我弄亂了,再此我用一個實際例子來解說,例如我有產品檔與出貨檔,然而我需要在DBGrid編輯出貨檔,出貨檔的產品編號是用下拉選單從產品檔抓進來的,下列為假設的欄位與設定方式 產品檔編號:P_NO 產品檔名稱:P_NAME 出貨檔產品編號:O_PNO 設定方式: Result Field:是顯示在下拉選項所看到的資料,所以設定為產品檔名稱:P_NAME Lookup Keys:是從下拉選單選擇後要丟出去的資料,所以設定為產品檔編號:P_NO KeyFields:為要寫入的欄位名稱,所以設定為出貨檔產品編號:O_PNO 這是小弟的一些經驗,希望能給往後初學者一些些幫助 如有錯誤,望請各位先進不吝指教 再次感謝pillar62先進、lcjan先進與cashxin2002版主撥空解答
系統時間:2024-11-25 4:37:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!