如何获取和显示属于 table 关系的字段?
How can I get and show the fields that are part of a table relation?
我有一个 table TableB
与另一个 table TableA
有关系 TableRel
。
此关系定义为 TableA.FieldA == TableB.FieldB
我知道如何使用 class 方法获取关系的名称 DictTable.relation()
:
DictTable dt;
dt = new DictTable(tableNum(MyTable));
info(strFmt("%1" , dt.relation(i)));
是否可以获取并显示关系的字段?
在我的例子中,我正在寻找 TableA.FieldA == TableB.FieldB
。不知道有没有办法做到这一点。
我假设您正在尝试查看构成指定关系的字段。
为此,您需要使用 DictRelation 和 DictField 类。基于table创建一个新的DictRelation,然后使用loadTableRelation()指定相关的table。新建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()));
斯宾塞的回答几乎是正确的。下面一行
Field = new DictField(tableNum(InventDim), dr.lineExternTableValue(RelationIndex));
需要
Field = new DictField(tableNum(InventDim), dr.lineTableValue(RelationIndex));
我有一个 table TableB
与另一个 table TableA
有关系 TableRel
。
此关系定义为 TableA.FieldA == TableB.FieldB
我知道如何使用 class 方法获取关系的名称 DictTable.relation()
:
DictTable dt;
dt = new DictTable(tableNum(MyTable));
info(strFmt("%1" , dt.relation(i)));
是否可以获取并显示关系的字段?
在我的例子中,我正在寻找 TableA.FieldA == TableB.FieldB
。不知道有没有办法做到这一点。
我假设您正在尝试查看构成指定关系的字段。
为此,您需要使用 DictRelation 和 DictField 类。基于table创建一个新的DictRelation,然后使用loadTableRelation()指定相关的table。新建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()));
斯宾塞的回答几乎是正确的。下面一行
Field = new DictField(tableNum(InventDim), dr.lineExternTableValue(RelationIndex));
需要
Field = new DictField(tableNum(InventDim), dr.lineTableValue(RelationIndex));