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

無法正確取得fieldkind為lookup類型的資料

缺席
mingking0947
一般會員


發表:30
回覆:32
積分:12
註冊:2005-07-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-10-05 11:02:39 IP:220.130.xxx.xxx 訂閱
各位前輩,
遇到無法正確取出lookup類型的資料,請幫忙看看.架構如下:

QUOTATION (報價單) :Q_NO,Q_C_NO
MAIN_MATERIAL (主料) : M_M_NO, M_Q_NO
MATERIAL_CUST (客戶料號): M_C_NO,M_C_NOC
CUSTOMER (客戶資料) : C_NO,C_NAME
其中的
MATERIAL_CUST.M_C_NO 關聯到 CUSTOMER.C_NO
MAIN_MATERIAL.M_Q_NO 關聯到 QUOTATION.Q_NO
元件有:
4個TADOQuery:分別指到QUOTATION,MAIN_MATERIAL,MATERIAL_CUST,CUSTOMER.
名稱為qryQUOTATION,qryMAIN_MATERIAL,qryMATERIAL_CUST,qryCUSTOMER.

query中的sql語法:除了qryMAIN_MATERIAL為SELECT * FROM MAIN_MATERIAL WHERE M_Q_NO = :Q_NO 外,
其餘皆為SELECT * from xxxx(資料表名稱)
query的stringFields:add 所有欄位.除了qryMAIN_MATERIAL增加一個fieldkind有lookup型態外,其餘皆為普通之string或integer.
qryMAIN_MATERIAL的fieldName = M_C_NOC.
qryMAIN_MATERIAL的stringFields: fieldkind=fklookup ; keyfields = M_M_NO ; lookupDataset = qryMATERIAL_CUST ;
lookupKeyFields = M_C_NO ; lookupResultField = M_C_NOC
qryMAIN_MATERIAL的datasource = DS_QUOTATION.
2個datasource: DS_MAIN_MATERIAL(DataSet=qryMAIN_MATERIAL), DS_QUOTATION (DataSet=qryQUOTATION)
N個DBEDIT顯示QUOTATION資料及CUSTOMER的名稱(c_name)
1個DBGrid顯示MAIN_MATERIAL資料(主料資料):
datasource = DS_MAIN_MATERIAL
Columns : 增加所有qryMAIN_MATERIAL的欄位.包含新增的M_C_NOC欄位.
1個Navigator :datasource = DS_MAIN_MATERIAL .可以dbgrid上新增MAIN_MATERIAL的資料.

本來要在dbgrid上依訂單上的號碼(Q_NO)及客戶編號(C_NO),顯示相對應的客戶料號(用lookup新增的M_C_NOC).
雖可以顯示客戶料號,但卻都是第一筆,無法依客戶編號取出對應客戶料號.

另外,本來想要在qryMAIN_MATERIAL中以join的方法下sql語法顯示MATERIAL_CUST的資料,但因此dbgrid要能新增資料,
故不做join.


請問有那個地方沒有設定好.
感謝!!
編輯記錄
mingking0947 重新編輯於 2010-10-05 11:08:04, 註解 無‧
系統時間:2024-12-04 1:12:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!