2015-04-15 17 views
0

我有一個表TableB與關係TableRel到另一個表TableA。 這種關係被定義爲TableA.FieldA == TableB.FieldB如何獲取並顯示屬於表關係的字段?

我知道如何與類的方法DictTable.relation()得到的關係的名字:

DictTable dt; 

dt = new DictTable(tableNum(MyTable)); 
info(strFmt("%1" , dt.relation(i))); 

是否有可能獲得並顯示相關的領域?我想找到TableA.FieldA == TableB.FieldB。我不知道是否有方法來做到這一點。

回答

2

我假設您正在嘗試查看組成指定關係的字段。

爲了做到這一點,您可以使用DictRelation和DictField類。根據表創建一個新的DictRelation,然後使用loadTableRelation()指定相關的表。創建新DictFields和使用DictRelation.lineExternTableValue()方法來指定具體領域:

DictRelation dr; 
DictField Field; 
DictField RelatedField; 
int   RelationIndex = 1; 

dr = new DictRelation(tableNum(InventDim)); 
dr.loadTableRelation(tableNum(EcoResColor)); 
info(strFmt("%1", tableId2name(dr.externTable()))); 

Field = new DictField(tableNum(InventDim), dr.lineTableValue(RelationIndex)); 
RelatedField = new DictField(tableNum(EcoResColor), dr.lineExternTableValue(RelationIndex)); 

info(strFmt("%1 related to %2", Field.name(), RelatedField.name())); 
+0

好,我試試這個幫助! – ulisses

+0

謝謝Spencer Kershaw,你的回答對我很有幫助! – ulisses

2

從斯賓塞的答案几乎是正確的。

Field = new DictField(tableNum(InventDim),dr.lineExternTableValue(RelationIndex));

需要是

字段=新DictField(tableNum中(InventDim),dr.lineTableValue(RelationIndex));

+0

好的。我編輯了答案以反映。 –

相關問題