AX 2012: Einen Bericht mit den SQL Reporting Services erstellen

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

Ich gehe davon aus, daß der geneigte Leser schon einmal einen Query erstellt hat, deshalb werde ich darauf nur sehr oberflächlich eingehen.

Basis-Tabellen meines Queries sind die Tabellen
  • CustInvoiceTrans
  • CustInvoiceJour
  • CommissionSalesGroup

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.

  Query

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

Über File > New > Project das Template Microsoft Dynamics AX auswählen, Report Model auswählen und einen Namen und Speicherort angeben.   Solution Explorer

 

Schritt 3: Erzeugen eines DataSets

DataSet

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

  • InvocieId
  • InvocieDate
  • ItemId
  • SalesGroup
  • LineAmountMST

und die Methode

  • itemName()

Aus der Tabelle CommissionSalesGroup benötige ich das Feld

  • Name

Gleichzeitig habe ich das DataSet über die Properties auf CustInvoiceDataSet umbenannt.

Die Eigenschaften des DataSet stellen sich nach Abschluß des Dialoges wie folgt dar:

DataSet Properties

 

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.

Properties 

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

Gruppierung Nun gilt es, die geforderte Gruppierung nach der Verkaufsgruppe (Feld SalesGroup) abzubilden. Hierzu muss im Knoten Groupings der CustInvoiceDataSetTable benannten Tabelle ein neuer Knoten erstellt werden. Diesen nennen wir SalesGroupGrouping und vergeben im einen sprechenden Label, z.B. Verkaufsgruppe.

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.

Properties

Damit diese Summe je Verkaufsgruppe korrekt formatiert wird, passen wir die Eigenschaften entsprechend an:

Properties

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

Properties

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:

Expression 

Diese Änderung bewirkt, daß im Bericht negative Beträge später wie folgt dargestellt werden:

Bericht mit eingefärbten Werten

 

Schritt 8: MenuItem in Dynamics AX erzeugen

Abschließend erstellen wir in Dynamics AX ein neues MenuItem, verknüpfen dieses mit einem Menü um den Bericht aus Dynamics AX heraus starten zu können.

AX erzeugt - wie schon in früheren Versionen - automatisch einen Dialog, wo man die anzuzeigenden Daten filtern kann.
  Menuitem

Dialog 

 

Schritt 9: Aufrufen des Berichtes aus Dynamics AX heraus - Fertig

Bericht 

Dieser Beitrag bezieht sich auf die Version:
Dynamics AX 2012

Kommentar hinzufügen
 
 

 

 
 
 
Beiträge des aktuellen Monats
August 2021
MoDiMiDoFrSaSo
 1
2345678
9101112131415
16171819202122
23242526272829
3031 
 
© 2006-2021 Heinz Schweda | Impressum | Kontakt | English version | Mobile Version
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.  Mehr dazu