| | | Xometry ermöglicht JTW Astronomy die Herstellung hochwertiger Trident Teleskophalterungen, ein Anwenderbericht
|
Autor
|
Thema: Documents Projects Relation (970 mal gelesen)
|
McByte Mitglied Entwicklungsingenieur
Beiträge: 60 Registriert: 05.12.2003
|
erstellt am: 28. Jan. 2010 00:13 <-- editieren / zitieren --> Unities abgeben:
Hallo, Ich versuche Objekte der SuperKlasse "Documents" zu finden, die mit einem spezifischen Objekte der SuperKlasse "Projects" verlinkt sind. Das funktioniert soweit auch ganz gut. Problem ist: Ich schaffe es nicht, das Ergebnis auf eine bestimmte Klasse zu beschränken. Hier der wesentliche code:
Code: GetChildrenFromTypeByType(ISmObject RootSmObject, ISmClass LinkSmClass, ISmClass LinkedSmClass) { ... ISmQueryDefinition definition = RootSmObject.ObjectStore.NewQueryDefinition(); definition.Roles.Add(LinkedSmClass.ClassId, "F"); definition.Roles.Add(LinkSmClass.ClassId, "L"); //definition.Where.Add("", "CLASS_ID", "=", 99, false, "F"); definition.Select.Add("TDMX_ID", "F", false); definition.RecordLimit = 20; ISmObjects Result = RootSmObject.RetrieveRelationsEx(definition, SilentBehavior); ... return _Ret; }
Das Ergebnis beinhaltet nur korrekt gelinkte Objekte, leider aber nicht nur Objekte der Klasse "LinkedSmClass". Kann mir jemand weiter helfen? Danke! ------------------ McByte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
McByte Mitglied Entwicklungsingenieur
Beiträge: 60 Registriert: 05.12.2003
|
erstellt am: 28. Jan. 2010 13:57 <-- editieren / zitieren --> Unities abgeben:
Hab's jetzt erfolgreich auf einem Anderen Weg versucht. Code: public SmRecList.SmRecordList GetChildrenFromTypeByType(ISmObject RootSmObject, ISmClass LinkSmClass, ISmClass LinkedSmClass) { ISmQuery Query = _oSmtSession.ObjectStore.NewQuery(); ISmQueryDefinition QueryDef = Query.QueryDefinition; QueryDef.Roles.Add(RootSmObject.ClassId, "F"); QueryDef.Roles.Add(LinkedSmClass.ClassId, "S"); QueryDef.Roles.Add(LinkSmClass.ClassId, "L"); QueryDef.Select.Add("OBJECT_ID","S",false); QueryDef.Select.Add("CLASS_ID","S",false); QueryDef.Select.Add("OBJECT_ID", "F", false); QueryDef.Where.Add("", "OBJECT_ID", "=", RootSmObject.ObjectId, false, "F"); Query.Run(); return Query.QueryResult; }
Mich würde trotzdem noch interessieren was der Fehler war, falls es jemand wissen sollte.Andere Frage: Ich versuche das QueryResult der oben abgebildeten Funktion mittels GUIService darzustellen. Das sieht wie folgt aus:
Code: ... SmGUISrv.ISmView SmView = GUIService.Views.NewViewByType(SmGUISrv.ViewTypeEnum.vwtBottomUpTree); ... //Loop: SmView.DisplayObjects.CompositeObjects.Add(_oSmtSession.ObjectStore.CompositeObjectFromData(QueryResult, Count, true)); ... SmView.SmViewWindow.Show();
Resultat ist diese Fehlermeldung: Zitat: Error No: 00177 A related class must be defined for view of type 'Bottom Up Tree'.
Wenn ich "vwtTreeList" statt "vwtBottomUpTree" benutze, dann funktioniert es, entspricht aber nicht dem gewünschten Resultat. Kann mir jemand sagen wie ich die "related class" definieren kann? Danke! ------------------ McByte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|