請問關於兩個DBLookupComboBox如何作取值動作~ |
尚未結案
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
請問各位~ 目前有個需求資料如下~
生產線別(001)
機台號碼(TMR-90/TMG-90/TMB-90)
生產線別(002)
機台號碼(TMR-150/TMG-150/TMB-150)
----------------------------------------------------------
畫面有個兩個DBLookupComBox(分別是帶生產線別和機台號碼)
請問SQL文中首先會依據生產線別屬於001或002來帶出機台號碼~
原本我都是在Object Inspector屬於ADOQuery中的SQL下語法~
如果~需要經由DBLookupComBox(生產線別)點選後取得生產線別
再顯示DBLookupComBox(機台號碼)內資料~
該如何去作呢~ 麻煩各位~ ^^
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi t0288542, 1.set ListSource & KeyField for the two DBLookupComboBoxs to the same 2.DBLookupComboBox1.ListField := 生產線別 3.DBLookupComboBox2.ListField := 機台號碼 4.Add some codes for DBLookupComboBox1.OnClick
procedure TForm1.DBLookupComboBox1Click(Sender: TObject); begin DBLookupComboBox2.KeyValue := TDBLookupComboBox(Sender).KeyValue; ShowMessage(DBLookupComboBox2.Text); end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi t0288542, Where do the error occur !? Could you provide more codes !? in your case
DBLookupComboBox1.ListField := 'MD001';
DBLookupComboBox2.ListField := 'MX001'; below is the sample for DBLookupComboBox http://delphi.ktop.com.tw/loadfile.php?TOPICID=20095552&CC=449428 ----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
Hi Fishman~ (1)
因為DBLookupComboBox1和DBLookupComboBox2的DataSource
設定為DataSource1,DataField設定為生產線別和機台號碼~
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi t0288542, 另一個範例 for DBLookupComboBox: http://delphi.ktop.com.tw/loadfile.php?TOPICID=20104942&CC=449638 1.建立三個 DataSet
第一個:編輯用 --> ClientDataSet1 --> DataSource1
第二個:只有生產線別 --> ClientDataSet2 --> DataSource2
第三個:有生產線別與機台代號 --> ClientDataSet3 --> DataSource3 SQL Command 大致如下
Query2 : SELECT DISTINCT A.MD001 FROM CMSMD A ORDER BY A.MD001 Query3 : SELECT A.MD001, A.MD002, ISNULL(B.MX001,'') AS MX001, ISNULL(B.MX003,'') AS MX002 FROM CMSMD A LEFT OUTER JOIN CMSMX B ON A.MD001 = B.MX002 ORDER BY A.MD001, B.MX002DBLookupComboBox1.OnClick 改變 DataSet3 的 Filter 條件 procedure TForm1.DBLookupComboBox1Click(Sender: TObject); begin ClientDataSet3.Filtered := False; ClientDataSet3.Filter := 'md001 = ' + Quotedstr(TDBLookupComboBox(Sender).Text); ClientDataSet3.Filtered := True; DBLookupComboBox2.KeyValue := ''; end;試試看可否符合你的需要 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
Hi Fishman~ 我有試著利用您所提供的方法~
發生幾個錯誤~
1.當編輯那個DataSource1同時指定給DBLookupComboBoxs一樣會發生錯誤如上圖的錯誤訊息~其中機台號碼似乎無法預設指定那筆資料~
2.DBLookupComboBox1.OnClick 所改變 ADOQuery3 的 Filter 條件
所點選生產線別對應機台號碼雖然顯示出來~但是每次點選時都是第一筆資料~ 不好意思~ 我不知道我那裡設定錯誤~
麻煩您~
或者我是否可將檔案寄給你~看一下嗎~
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |