Dynamics AX Blog - Microsoft Dynamics AX (Axapta) - Seite 37

In den letzten Jahren, in denen ich mich fast hauptsächlich mit der Entwicklung im Umfeld von Microsoft Dynamics AX (vormals Axapta) beschäftigt habe, ist das eine oder andere Code-Fragment entstanden, von dem ich mir vorstellen könnte, daß es auch für andere AX-Entwickler ganz nützlich sein könnte. Aber auch Tips und Tricks zu dem mächtigen ERP-System werde ich in dieser Kategorie präsentieren.
RSS-Feed dieser KategorieDruckeinstellungen und Filterkriterien eines Reports vorbelegen
08.12.2010Microsoft Dynamics AX (Axapta)
|
Stapelverarbeitung für einen Bericht/Report verhindern
04.12.2010Microsoft Dynamics AX (Axapta)
Um bei einem Bericht/Report, der direkt über ein MenuItem (d.h. nicht über eine von RunBaseReport abgeleitete Klasse) aufgerufen wird, die Möglichkeit zu unterbinden, diesen im Stapel auszuführen, muss nur die Methode canGoBatch des Reports überschrieben werden. Diese Methode scheint allerdings nicht in den überschreibbaren Methoden auf, also muss man einfach eine solche wie folgt anlegen: public boolean canGoBatch()
{ ; return false; } Wird der Report über eine Klasse aufgerufen, dann muss in dieser die gleichnamige Methode entsprechend überschrieben werden. Getestet in Dynamics AX 2009 |
Tipp: Label eines Extended Datatypes (EDT) ermitteln
21.11.2010Microsoft Dynamics AX (Axapta)
Manchmal braucht man einfach nur den Label eines Extended Datatypes (EDT), um diesen zum Beispiel als Bestandteil einer Info-/Fehlermeldung ausgeben zu können: new SysDictType(extendedtypenum(costingversionid)).label() |
Eingeblendete Dimensionen in Reports abfragen
17.11.2010Microsoft Dynamics AX (Axapta)
In manchen Berichten ist es möglich, Lagerdimensionen über den Dialog ein- bzw. auszublenden. Um im Bericht selbst abzufragen, ob eine bestimmte Dimension eingeblendet wurde, kann man den unten stehenden Code verwenden, der eine Instanz der Klasse InventReport_OnHand voraussetzt. Dieser fragt zum Beispiel ab, ob die Palettennummer eingeblendet wurde, if(InventReport_OnHand.parmInventDimParm().WMSPalletIdFlag))
// ...do something
|
Whitepaper zum Globalen AdressbuchDas Globale Adressbuch ist wohl eine der grossen Neuerungen in Dynamics AX 2009. Und vor allem Umsteiger von früheren Versionen haben dazu die eine oder andere Frage. So manche dieser Fragen beantwortet Microsoft im Whitepaper zum Globalen Adressbuch, mit Sicherheit aber nicht alle ;-) Denoch sollte sich jeder Entwickler und Berater dieses Whitepaper einmal zu Gemüte führen, so findet man zum Beispiel zum Thema Importieren von Debitoren/Kreditoren bzw. Geschäftsbeziehungen via Excel eine ausführliche Beschreibung. |
Shared Projects vergleichen
26.10.2010Microsoft Dynamics AX (Axapta)
Vor kurzem stand ich wieder einmal vor der Thematik, den Inhalt zweier Projekte vergleichen zu müssen. Da ich bis dato keine Möglichkeit gefunden habe, dies mit Bordmitteln von Dynamics AX durchzuführen, habe ich mir einen Job geschrieben, der genau dies tut. Der Job verwendet die temporäre Tabelle TmpAOTImport aus dem Standard, in die zuerst mit Hilfe der Klasse TreeNodeTraverser sämtliche AOT-Objekte der beiden Projekte in jeweils einer Tabelleninstanz geschrieben wird. Danach werden diese beiden Instanzen über einen simplen SELECT miteinander verglichen. Über den Standard-Enum SysMergeDirection (einen besseren habe ich nicht gefunden) kann man definieren, was ausgegeben werden soll. Beim Wert NONE werden Objekte beider Projekte ausgegeben, die im jeweils anderen nicht vorkommen. Das Ergebnis des Jobs ist in allen Fällen ein einfaches Infolog. Beispiel: Die folgenden beiden Projekte gilt es zu vergleichen |
Tipp: Job in Klasse umwandelnWusstet Ihr eigentlich, daß man einen Job einfach dadurch in eine einfache Klasse umwandelt, in dem man den Job per Drag & Drop in den Knoten Classes des AOTs zieht? |
|
|
|
|
|
|
In einem früheren Beitrag habe ich ja schon demonstriert, wie man einen Report in Dynamics AX per Code aufruft, und diesem dabei einen Query übergibt. Der folgende Code erweitert diesen Aufruf um die Druckeinstellungen (printJobSettings), sodaß es nun möglich ist, einen Report vollautomatisch mit vorgegebenen Filterkriterien und definierten Druckeinstellungen aus X++ heraus aufzurufen.