Mit Hilfe von SysDictClass kann man wertvolle Erkenntnisse über Klassen gewinnen und abfragen.Ich habe einige Dinge, die ich am häufigsten gebrauche, anhand einfacher Beispiele zusammengetragen.
Dieses kleine Stück Quellcode ermittelt alle abgeleiteten Klassen der Klasse FormControl.
SysDictClass formCtrlClss;ListEnumerator listEnumerator;;formCtrlClss = new SysDictClass(classnum(FormControl));listEnumerator = formCtrlClss.extendedBy().getEnumerator();while (listEnumerator.moveNext()){formCtrlClss = new SysDictClass(listEnumerator.current());print formCtrlClss.name();}pause;
Diese Funktionalität wird auch im Standard von Microsoft Dynamics AX verwendet, um alle möglichen Funktionen der Stabelverarbeitung abzufragen/ zu ermitteln.
Man kann natürlich auch ermitteln, von welcher Klasse(n) die aktuelle Klasse abgeleitet ist.
SysDictClass dictClass = new SysDictClass(classnum(SalesFormLetter_Invoice));;while (dictClass.extend()){dictClass = new SysDictClass(dictClass.extend());print dictClass.name();}pause;
Um zu ermitteln, ob eine Klasse von einer bestimmten Klasse abgeleitet wurde, muss folgendes geschrieben werden.
SysDictClass dictClass = new SysDictClass(classnum(SalesFormLetter_Invoice));;// Überprüfen ob die Klasse von der Klasse Object abgeleitet istprint dictClass.isExtending(classnum(Object));// Überprüfen ob die Klasse von der Klasse FormControl abgeleitet istprint dictClass.isExtending(classnum(FormControl));pause;
Es kann auch auf die Methoden der Klasse zugegriffen werden.
SysDictClass dictClass = new SysDictClass(classnum(SalesFormLetter_Invoice));;//Statische Methode der Klasse SalesFormLetter_Invoice aufrufen, wenn vorhandenif (dictClass.hasStaticMethod("Description"))print dictClass.callStatic("Description");//Methode der Klasse SalesFormLetter_Invoice aufrufen, wenn vorhandenif (dictClass.hasObjectMethod("canGoBatchJournal"))print dictClass.callObject("canGoBatchJournal", dictClass.makeObject());pause;
Das ist nur ein Teil der Funktionen, die ich persönlich am Wichtigsten empfinde und hin und wieder benötige.
Remember Me
Subscribe in a reader