AX 2012: Einen Bericht mit den SQL Reporting Services erstellen
04.11.2011Microsoft Dynamics AX (Axapta)
|
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012
Dynamics AX 2012
|
|
|
|
|
|
Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012
|
Mit der Version Dynamics AX 2012 halten die SQL Reporting Services (SSRS) nun endgültig Einzug im Leben eines jeden AX-Entwicklers. Zeit also, sich mit diesem Thema etwas intensiver zu beschäftigen. Die Ergebnisse meiner ersten Gehversuche mit den SSRS präsentiere ich Euch nun in diesem Beitrag.
Szenario: Es soll ein Bericht erstellt werden, bei welchem der Umsatz pro Verkaufsgruppe ausgewertet werden kann.
Schritt 1: Erstellen eines Queries in Dynamics AX
Basis-Tabellen meines Queries sind die Tabellen
Die Tabelle CustInvoiceTrans wird per InnerJoin mit der CustInvoiceJour über die im Screenshot gezeigten Felder verknüpft, die Tabelle CommissionSalesGroup wird per OuterJoin über das Feld SalesGroup verknüpft.
Seit AX 2012 muss die Eigenschaft Dynamic der Fields-Gruppe aller beteiligten Tabellen entsprechend gesetzt werden, im einfachsten Fall wird diese auf Yes gesetzt, um im Visual Studio später alle Felder der Tabellen verwenden zu können.
Schritt 2: Erstellen eines Projektes im Visual Studio
Schritt 3: Erzeugen eines DataSets
Innerhalb dieses Reports ist nun ein neues DataSet zu erstellen. Diesem geben wir den Namen CustInvoiceDataSet und tragen als Query den zuvor in Dynamics AX erstellten ein. Letzteres erfolgt über einen Dialog wo auch jene Felder oder Methoden gewählt werden können, die im Bericht ausgegeben werden sollen.
In unserem Fall sind dies:
Aus der Tabelle CustInvoiceTrans die Felder
und die Methode
Aus der Tabelle CommissionSalesGroup benötige ich das Feld
Gleichzeitig habe ich das DataSet über die Properties auf CustInvoiceDataSet umbenannt.
Die Eigenschaften des DataSet stellen sich nach Abschluß des Dialoges wie folgt dar:
Schritt 4: Erzeugen eines Designs
Nun kann das DataSet per Drag & Drop in den Knoten Designs gezogen werden. Dadurch wird ein neues Design namens AutoDesign1 erstellt.
Nun gilt es einige Eigenschaften dieses Designs anzupassen. Dazu zählen das Seitenformat, Bezeichnungen (Title) des Berichtes aber auch das Layout (LayoutTemplate), im Beispiel habe ich als Seitenformat die Einstellungen für DIN-A4 eingetragen.
Der automatisch generierten Tabelle CustInvoiceDataSetTable weisen wir ebenfalls über die Eigenschaft StyleTemplate ein Layout zu. Im Beispiel habe ich das Layout so gewählt, daß die einzelnen Zeilen später abwechselnd grau oder weiß unterlegt werden.
Schritt 5: Gruppierung einrichten
In diesem Knoten können wir nun einen Unterknoten erstellen, in dessen Expression wir das Feld SalesGroup eintragen. Dieser Knoten bekommt nun noch den Namen SalesGroup.
Danach erstellen wir jeweils einen neuen Knoten im Header und Footer-Bereich. Auch diese bekommen einen möglichst selbstsprechenden Namen (SalesGroupHeader bzw. SalesGroupFooter).
Im SalesGroupHeader erzeugen wir zwei Unterknoten. Beim Ersten tragen wir in der Eigenschaft Expression das Feld SalesGroup ein, beim Zweiten das Feld Name.
Im SalesGroupFooter erzeugen wie nun in Summe sieben Unterknoten. Nur beim siebenten tragen wir über die Eigenschaft Expression einen Wert ein, die anderen taufen wir Dummy1 bis Dummy6.
Damit diese Summe je Verkaufsgruppe korrekt formatiert wird, passen wir die Eigenschaften entsprechend an:
Hintergrund der Dummy-Felder ist, daß Visual-Studio die Spalten im Footer automatisch unter den Spalten im Data-Bereich versucht auszurichten. Würden wir diese Dummy-Felder nicht erstellen, würde die Summe unterhalb der ersten Spalte angedruckt.
In früheren Versionen von Dynamics AX hätten wir einfach die Eigenschaft ModelFieldName für solcherart Positionierung herangezogen, eine solche Eigenschaft scheint es aber in Visual Studio nicht zu geben.
Schritt 6: Reihenfolge der Spalten und Detail-Eigenschaften anpassen
Damit die Daten in einer bestimmten Reihenfolge sortiert angedruckt werden, erstellen wir im Sorting-Knoten entsprechende Unterknoten und tragen über deren Eigenschaft SortBy das jeweilige Feld ein. Wir sortieren nach Verkaufsgruppe, Rechnungsnummer und Rechnungsdatum.
Abschließend prüfen bzw. ändern wir die Reihenfolge der anzudruckenden Felder im Data-Bereich und passen über die jeweiligen Eigenschaften Spaltenbreiten und ggf. die Bezeichnungen an. So wähle ich zum Beispiel für die Spalte LineAmountMST als Bezeichnung Betrag statt dem vom Visual Studio vorgeschlagenen Label.
Schritt 7: Spalte Betrag einfärben
Damit Gutschriften bzw. Rechnungen mit negativen Werten rot dargestellt werden, ändern wir die Eigenschaft Style > Font > Color über eine entsprechende Expression:
Diese Änderung bewirkt, daß im Bericht negative Beträge später wie folgt dargestellt werden:
Schritt 8: MenuItem in Dynamics AX erzeugen
AX erzeugt - wie schon in früheren Versionen - automatisch einen Dialog, wo man die anzuzeigenden Daten filtern kann.
Schritt 9: Aufrufen des Berichtes aus Dynamics AX heraus - Fertig