...feel the spirit of Microsoft Dynamics AX RSS 2.0
 Friday, April 04, 2008

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 ist
print dictClass.isExtending(classnum(Object));
// Überprüfen ob die Klasse von der Klasse FormControl abgeleitet ist
print 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 vorhanden
if (dictClass.hasStaticMethod("Description"))
print dictClass.callStatic("Description");

//Methode der Klasse SalesFormLetter_Invoice aufrufen, wenn vorhanden
if (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.

Friday, April 04, 2008 9:01:19 PM (Mitteleuropäische Zeit, UTC+01:00)  Mathias Füßler  #    Comments [0] - Trackback




Translate
Über/Kontakt

     







© Copyright 2009 Axel Kühn
Sign In
Subscribe this blog
Archiv
<January 2009>
SunMonTueWedThuFriSat
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567
Statistik
Total Posts: 96
This Year: 0
This Month: 0
This Week: 0
Comments: 45





All Content © 2009, Axel Kühn
DasBlog theme 'Business' created by Christoph De Baene (delarou)