PowerDesigner中如何通过VB脚本读取Extended Collection子记录的Code属性
修正后的完整代码
Dim object, coll Set object = ActiveModel.FindChildByName("Table_1",cls_Table) Set coll = object.GetExtendedCollection("Collection_1") for each coll_member in coll.Elements output coll_member.TargetObject.Code next
两处替换说明
- 第一处
??????替换为Elements:PowerDesigner 中扩展集合的所有存储条目都挂载在Elements属性下,是遍历扩展集合成员的固定调用属性。 - 第二处
??????替换为TargetObject:扩展集合内存储的不是直接的抽象数据类型实例,而是关联关系的包装对象,需要通过TargetObject属性获取到实际关联的AbstractDataType对象后,才能正常读取其Code属性。
可选补充:仅读取AbstractDataType_1的Code
如果不需要遍历所有关联的ADT,仅需要获取指定对象的属性,可在循环内增加判断条件:
Dim object, coll Set object = ActiveModel.FindChildByName("Table_1",cls_Table) Set coll = object.GetExtendedCollection("Collection_1") for each coll_member in coll.Elements If coll_member.TargetObject.Name = "AbstractDataType_1" Then output coll_member.TargetObject.Code End If next
内容的提问来源于stack exchange,提问作者Владислав Левчук
相关产品推荐
相关产品推荐

