Locate 怎樣可以search lookup field呢? |
缺席
|
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
小弟寫了一個簡單找尋的method:~
它可以找到在Tquery中本身有的Tfield,但怎樣可以找尋以lookupfield所ADD的new field呢? 因為,當尋找以lookupfield為找尋的對象會有error~ 請問C兄們有沒有解決之法呢? procedure TsetAuthority.go_locate; var loca_str:string; begin loca_str:=sel_cond1.disTofieName(CB_locate.Text,act_q1); //disTofieName是轉變displaylabel為fieldname,基本上跟找尋無關。 act_q1.Locate(loca_str,Ed_locate.Text,[loPartialKey]); end;
------
獨學無友則孤陋寡聞,相識滿天下能知天下事 小弟是來自香港的~~多多指教 編輯記錄
chkkevin 重新編輯於 2008-02-16 19:29:38, 註解 無‧
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
其實,可不可把lookupfield做尋找的對像呢?
如果用master / detail 方式,好像都是有個問題,因為小弟是想把master / detail 都是 的field放在同一個TDBGrid中,再把TDBGrid的caption放在一個combobox中,再利用 .disTofieName(CB_locate.Text,act_q1) //CB_locate就是那個combobox 轉這個caption做回field name,再以這個field name做尋找的目標,就算是用上master / detail 到了最終都是要在Tquery中ADD master 的field,問題又再次去到,不能locate”lookupfield”了。 如何是好呢。。。。? ===================引 用 pceyes 文 章=================== 不算看得懂你的問題 如果真的new lookupfield不能locate的話 改用master / detail 方式,然後locate detaIl 就會找到master了。
------
獨學無友則孤陋寡聞,相識滿天下能知天下事 小弟是來自香港的~~多多指教 |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
不好意思,小弟說明得不太清楚~
本來是無關,但? 那就非用lookupfield不可了。其實,小弟有一個方法是把兩個table join在一起, 像這樣 SELECT u.Staff_id,s.F_name,s.L_name,u.Mod_registry,u.Mod_inpatient ,u.Mod_energency,u.Mod_outpatient,u.Mod_admin,u.Mod_dispensary,u.mod_Operation FROM staff s,userau u where s.Staff_id=u.staff_id having u.Mod_registry='false' and u.Mod_inpatient='false' and u.Mod_energency='false' and u.Mod_outpatient='false' and u.Mod_admin='false' and u.Mod_dispensary='false' and u.mod_Operation='false' order by u.staff_id 而不用table join的SQL是這樣,但就要用lookupfield,把 staff 的field出現在同一個DBGRID上。 select * from userAU where Mod_registry=’false' or Mod_inpatient=’false' or Mod_energency='’false' or Mod_outpatient=’false' or Mod_admin=’false' or Mod_dispensary='false' or mod_Operation=’false' order by staff_id 不過在Tquery的fieldname中u.Staff_id卻是變成Staff_id,這會是另一個問題,因為小弟 是需要u.Staff_id這個做fieldname而不是Staff_id,但不關LOCATE的事,而是用在其他方面,先不要理這個。 所以先想試試看有沒有法子可以把lookupfield 做locate~ ===================引 用 pceyes 文 章=================== 還是看不算得懂你的問題 如果真的new lookupfield不能locate的話 改用master / detail 方式, 先locate master後 再用Locate找Detail就可以找到你要的資料了。 另外不要再管DbGrid了,這些都是屬於DataSet的事,和顯示元件(DBGRID..)並無關係。
------
獨學無友則孤陋寡聞,相識滿天下能知天下事 小弟是來自香港的~~多多指教 |
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
|
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
|
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
|
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
|
BIG-ROM
初階會員 發表:94 回覆:91 積分:37 註冊:2005-04-16 發送簡訊給我 |
var
CZTJ : String; begin Edit1.Text; ADOQuery1.SQL.Text :='Select * From TABEL1'; ADOQuery1.Open; if ADOQuery1.Locate('name',CZTJ ,[loCaseInsensitive]) then begin ShowMessage('已经有相同的联系人存在!!'); CLOSE; END ELSE begin ... ===================引 用 chkkevin 文 章=================== 小弟寫了一個簡單找尋的method:~ 它可以找到在Tquery中本身有的Tfield,但怎樣可以找尋以lookupfield所ADD的new field呢? 因為,當尋找以lookupfield為找尋的對象會有error~ 請問C兄們有沒有解決之法呢? procedure TsetAuthority.go_locate; var loca_str:string; begin loca_str:=sel_cond1.disTofieName(CB_locate.Text,act_q1); //disTofieName是轉變displaylabel為fieldname,基本上跟找尋無關。 act_q1.Locate(loca_str,Ed_locate.Text,[loPartialKey]); end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |