二個 tclientdataset 的 master/detail 關係 |
答題得分者是:speedup
|
thomas0728
中階會員 發表:112 回覆:260 積分:89 註冊:2002-03-12 發送簡訊給我 |
二個 TClientDataset 的 Matser/detail 是透過設定
設定對表身MasterSource和MasterField(表頭關聯欄位名稱,一個以上用分號隔開)和 IndexFieldNames,但我的資料是先透過 dcom 直接給予,如
cdsBillHead.Active:=false;
cdsBillDetail.Active:=false;
cdsBillDetail.MasterSource:=dsBillHead;
cdsBillDetail.IndexFieldNames:='APPROVEDPOSNO';
cdsBillDetail.MasterFields:='APPROVEDPOSNO';
ERPDATA.MainControlObj.aDisp.LoadBill(BillData);
cdsBillHead.Data:=BillData[0];
cdsBillDetail.Data:=BillData[1];
cdsBillHead.Active:=true;
dsBillHead.DataSet:=cdsBillHead; 不知為什麼此時 cdsbilldetail 竟是為 eof
但如困我拿掉
cdsBillDetail.IndexFieldNames:='APPROVEDPOSNO';
cdsBillDetail.MasterFields:='APPROVEDPOSNO';
則 cdsbilldetail 則有資料
各位大大不知我那裡沒設定
謝謝 如果愛情也有味覺
那麼 有沒有ㄧ種愛
微微泛酸 不太苦澀 有點甜密
嚐起來的滋味讓人想起幸福
Thomas Chiou
------
Thomas Chiou | ||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 二個 TClientDataset 的 Matser/detail 是透過設定 設定對表身MasterSource和MasterField(表頭關聯欄位名稱,一個以上用分號隔開)和 IndexFieldNames,但我的資料是先透過 dcom 直接給予沒這樣玩過, 如不好設定, 可改用Filter試試.
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
speedup
資深會員 發表:19 回覆:259 積分:280 註冊:2003-07-04 發送簡訊給我 |
試試先給值再設關聯
cdsBillHead.Active:=false; cdsBillDetail.Active:=false; ERPDATA.MainControlObj.aDisp.LoadBill(BillData); cdsBillHead.Data:=BillData[0]; cdsBillDetail.Data:=BillData[1]; dsBillHead.DataSet:=cdsBillHead; cdsBillDetail.MasterSource:=dsBillHead; cdsBillDetail.IndexFieldNames:='APPROVEDPOSNO'; cdsBillDetail.MasterFields:='APPROVEDPOSNO';混心雜欲 棄修身~唉 發表人 - speedup 於 2004/06/07 08:48:21
------
唉~ |
||
thomas0728
中階會員 發表:112 回覆:260 積分:89 註冊:2002-03-12 發送簡訊給我 |
dsBillHead.DataSet:=cdsBillHead;
cdsBillDetail.MasterSource:=dsBillHead;
cdsBillDetail.IndexFieldNames:='APPROVEDPOSNO';
cdsBillDetail.MasterFields:='APPROVEDPOSNO';
這種方法我試過了,採用MasterSource,IndexFieldNames,MasterFields
的好處是 detail 在新增時,會自動代入主鍵值,如果用 Filter,就需自行處理主鍵值,如果是一支程式,那可能還好,無奈要做為所有 表單的祖先類別,就不能這樣做了,不知其他高手是否還有答案 如果愛情也有味覺
那麼 有沒有ㄧ種愛
微微泛酸 不太苦澀 有點甜密
嚐起來的滋味讓人想起幸福
Thomas Chiou
------
Thomas Chiou |
||
t0922610976
一般會員 發表:11 回覆:16 積分:15 註冊:2003-09-02 發送簡訊給我 |
|||
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|||
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
引言: 二個 TClientDataset 的 Matser/detail 是透過設定 設定對表身MasterSource和MasterField(表頭關聯欄位名稱,一個以上用分號隔開)和 IndexFieldNames,但我的資料是先透過 dcom 直接給予,如 cdsBillHead.Active:=false; cdsBillDetail.Active:=false; cdsBillDetail.MasterSource:=dsBillHead; cdsBillDetail.IndexFieldNames:='APPROVEDPOSNO'; cdsBillDetail.MasterFields:='APPROVEDPOSNO'; ERPDATA.MainControlObj.aDisp.LoadBill(BillData); cdsBillHead.Data:=BillData[0]; cdsBillDetail.Data:=BillData[1]; cdsBillHead.Active:=true; dsBillHead.DataSet:=cdsBillHead; 不知為什麼此時 cdsbilldetail 竟是為 eof 但如困我拿掉 cdsBillDetail.IndexFieldNames:='APPROVEDPOSNO'; cdsBillDetail.MasterFields:='APPROVEDPOSNO'; 則 cdsbilldetail 則有資料 各位大大不知我那裡沒設定 謝謝 如果愛情也有味覺 那麼 有沒有ㄧ種愛 微微泛酸 不太苦澀 有點甜密 嚐起來的滋味讓人想起幸福 Thomas Chiou换个方式,试试直接在SERVER端设置Master/Detail的关系,这样到Client端的Data,Detail的Data是Embeded在Master的Data里的。这样非常方便。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |