2014-10-14 15 views
0

Power Designer에 엔티티 개체가 있고 해당 상속을 처리하지만 자식 개체를 가져 오는 방법을 모르겠습니다. 누군가가 예제 코드를 게시 할 수 있습니까? 상속의 Object ID를 얻는 것도 중요합니다.Power Designer에서 상속의 하위를 결정하는 방법

편집 : 파스칼 예에 기초하여 용액 아이디어 : 여기

foreach (PdCDM.Inheritance curPDInheritance in curPDEntity.InheritedBy){ 
    foreach(PdCDM.InheritanceLink curPDInheritanceLink in curPDInheritance.InheritanceLinks){ 
    Console.WriteLine(curPDEntity.Name + " parent of " + ((PdCDM.Entity)curPDInheritanceLink.ChildEntity).Name+ " through " + curPDInheritance.Name + " (" + curPDInheritance.ObjectID + ")"); 
    } 
} 

답변

1

VBScript를 두 가지 예이다. 당신이 찾고있는 컬렉션에 대한 아이디어를 줄 것입니다. 첫 번째 엔티티는 엔티티에서 상속하는 엔티티를 직접 제공합니다.

option explicit 
dim mdl : set mdl = ActiveModel 
dim ent,inh,chl 
for each ent in mdl.Entities 
    for each inh in ent.InheritedBy 
     for each chl in inh.ChildEntities 
     output ent.Name + " parent of " + chl.Name + " through " + inh.Name + " (" + inh.ObjectID + ")" 
     next 
    next 
next 

편집 : 파워 디자이너의 버전이 .ChildEntities이없는 경우, 당신은 아이 엔티티를 연결하는 InheritanceLink을 시도 할 수 있습니다

option explicit 
dim mdl : set mdl = ActiveModel 
dim ent,chl 
for each ent in mdl.Entities 
    for each chl in ent.InheritedByEntities 
     output ent.Name + " parent of " + chl.Name 
    next 
next 

두 번째 예는 자신의 아이 엔티티를 검색하려면 상속을 열거 , 상속 :

option explicit 
dim mdl : set mdl = ActiveModel 
dim ent,inh,ilk 
for each ent in mdl.Entities 
    for each inh in ent.InheritedBy 
     for each ilk in inh.InheritanceLinks 
     output ent.Name + " parent of " + ilk.Object2.Name + " through " + inh.Name + " (" + inh.ObjectID + ")" 
     next 
    next 
next 
+0

예를 들어 주셔서 감사합니다! 두 번째 예제의 세 번째 루프는 모든 자식에 대해 동일한 상속 id를 반환합니다. 이 올바른지? – user2722077

+0

C# 개체 PdCDM.Inheritance에는 ChildEntities라는 특성이 없습니다. ChildrenList 만이 컬렉션 대신 문자열입니다. – user2722077

+0

16.5 SP03으로 예제를 실행했습니다. InheritanceLink를 사용하여 다른 예제를 추가했습니다. – pascal