Category Archives: NL

Jet Reports verbindet Dynamics-NAV (Navision) mit Excel. Es können aber auch andere Datenbanken mit Jet Reports ausgewertet werden. Dieser Blog bietet Tipps, Beispiele und Neuerungen zu dem beliebten Reporting-Tool. Sie kennen Jet Reports noch nicht? Auf unseren Webseiten finden Sie Produktinformationen.
Navision Link – Auslesen von Werten aus der Datenbank mittels Jet Reports (Ab der Essentials Version verfügbar)

Einfach Auswerten – Denormalisieren

Die meisten ERP Systeme, unter anderem auch Microsoft Dynamics NAV (Früher bekannt als Navision), verwenden „normalisierte“ Datenbanken. Diese Datenbanken sind für die Dateneingabe optimiert. Aus technischen Gründen enthalten solche Datenbanken sehr viele verschiedene Tabellen. Das spart viel Platz auf den Festplatten, weil die Daten nicht doppelt gespeichert werden müssen (Redundanzen vermeiden). So kann der Anwender seine Daten möglichst schnell und einfach eingeben. Zur Auswertung fügt man die aufgeteilten Daten wieder zusammen, indem mehrere Tabellen miteinander verknüpft.

Ein Beispiel: Wenn Sie einen Auftrag eingeben, dann wählen Sie einen Debitor nur aus. Sie müssen nicht jedes Mal die Adresse und die Telefonnummer neu erfassen. Diese Werte sind in der Debitorentabelle einmalig hinterlegt und werden automatisch in Ihren Auftrag übernommen.

Debitor Lookup

Die Zahlungsbedingung wählen Sie dann wieder aus einer anderen Tabelle, ebenso wie Lieferanschrift und Lieferbedingungen. Wäre Ihre Datenbank nicht normalisiert, hätten Sie bis hierher schon viel Arbeit gehabt, diese Daten erneut einzugeben.

Danach erfassen Sie die Artikel in den Auftragszeilen. Auch hier gibt es wieder eine Tabelle, aus der Sie die gewünschten Zeilen auswählen können: Die Artikeltabelle. Preise und Rabatte werden automatisch aus zwei weiteren Tabellen geholt: Tabelle Verkaufspreise und Verkaufsrabatte. Sie merken, ein ERP System wie Dynamics NAV ist für die Dateneingabe optimiert und beinhaltet sehr viele eigenständige Tabellen.

EinfachAuswerten - Artikel Lookup

 

Der Vorteil bei der Dateneingabe ist ein leider ein Nachteil beim Auswerten. Zum Auswerten muss man die Struktur der Daten gut kennen. Zudem muss man wissen, wie man mehrere Tabellen miteinander verknüpfen kann. Das überfordert das Fachwissen mancher Anwender deutlich.

Ein Beispiel aus dem Dynamics NAV:

Wollten Sie schon einmal alle offenen Auftragszeilen mit Artikeln der Artikelkategorie „Geschirr“ und Verkäufer „Meier“ sehen? Wie haben Sie dies gelöst?

Die Auftragszeilen in NAV stehen in der Tabelle Verkaufszeile. Die Artikelnummer und die Restliefermenge sind dort als Information vorhanden. Der Verkäufercode steht allerdings in der Tabelle Verkaufskopf. Verkaufskopf und Verkaufszeile sind über die Belegnummer verknüpft.

Sie müssten also bei den Verkaufsköpfen mit Verkäufercode gleich „Meier“ beginnen. Doch wie kommt man dann an die Zeilen? Merkt man sich die Belegnummern und filtert dann ggf.? Das geht sicherlich, wenn Sie wenige Aufträge im System haben. Aber merken Sie sich mal mehr als 10 Belegnummern und fügen Sie diese zu einem Filter zusammen. So könnten wir das Problem lösen. Es ist allerdings nur wenig komfortabel.

Eine Alternative ist, dass Sie sich von Ihrem NAV Betreuer im System ein neues Feld in der Verkaufszeile anlegen lassen: den Verkäufercode. Das kostet Sie aber einiges:

  • Geld, denn ein ERP Entwickler muss es für Sie durchführen. Jedes Feld verändert zu dem den Standard des ERP-Systems. Es kostet also bei jedem Upgrade wieder Geld.
  • Performance, denn zusätzliche Felder müssen automatisch vom ERP Programm gefüllt werden.
  • Übersicht, denn viele Hilfsfelder in einer Tabelle lenken von den wesentlichen Daten ab.
  • Speicherplatz, denn die zusätzliche Felder für Auswertungen werden statt einmalig in Stammdaten in allen Detaildatensätzen eingetragen.

Wenn Sie weitere Felder, wie die Lieferbedingung auf den Zeilen auswerten wollen, dann muss dann auch das Feld Lieferbedingung auf den Zeilen hinzugefügt werden. Gleiches mit dem Feld Zahlungsbedingung und und und… Irgendwann ist Ihre Tabelle Verkaufszeilen überladen mit Informationen. Dies wäre also die zweite Lösung, die uns aber immer noch nicht gefällt.

Zudem möchte Sie ja auch noch einen Filter auf die Artikelkategorie „Geschirr“ setzen. Sollen Sie sich jetzt hier alle Artikelnummern der Kategorie merken und als Filter setzen? Nein! Und die Artikelkategorie wiederum als Feld im NAV in der Tabelle Verkaufszeile anlegen lassen? Nein!

EinfachAuswerten - ERD ERP

 

Die Lösung hier ist ein sogenanntes Data Warehouse (Datenlager). Eingangs erwähnt sind ERP Systeme zum Eingeben der Daten optimiert. Ein Data Warehouse ist für das Auswerten optimiert. Sie werden eben nicht normalisiert, sondern man ergänzt die Tabellen „einfach“ um die Felder, die man zum Auswerten benötigt. Auch berechnete Felder oder das Nachtragen von Daten ist kein Problem.

Dieses Data Warehouse ist eine eigene Datenbank, welche mit den Daten aus Ihrem ERP System gefüllt wird. Der große Vorteil: Sie ändern nichts an Ihrem ERP System, weder an den Daten noch an der Programmierung. Sie verlieren im ERP System keine Performance.

Das Data Warehouse wird mit den Daten aus dem ERP System gefüllt – automatisiert nachts, oder zu jedem anderen Zeitpunkt, wenn Sie aktuelle Daten benötigen. Formeln sind möglich und werden vorberechnet, sodass Sie auch hier beim Auswerten keinen Performance Verlust haben.

Beim Abholen der Daten erweitern Sie die Tabellen im Datawarehouse und erstellen in der Tabelle Verkaufslieferzeilen einfach die eben genannten neuen Felder: Die Artikelkategorie holen Sie aus der Artikeltabelle und speichern dieses Feld als echten Wert. Gleiches mit den Verkäufercode: der wird aus dem Verkaufskopf geholt und gespeichert. Sie erhalten dadurch eine Datenbank, die nicht mehr normalisiert und Eingabeoptimiert ist. Und das ist hier völlig in Ordnung, denn hier wollen Sie ja keine Daten eingeben, Sie möchten optimal auswerten.

EinfachAuswerten - Business Intelligence ERP

Also können Sie schließlich auf dieser Tabelle einen Filter auf Verkäufer = „Meier“ und Artikelkategorie = „Geschirr“ setzen. Und schon sehen Sie die gewünschten Werte.

Mit dem BI-Tool Jet Enterprise ist das Denormalisieren von Datenbanken simpel zu erreichen. Für Dynamics NAV und AX sowie für das CRM Online werden sogar fertige BI Projekte mitgeliefert. Wir haben für unsere Kunden bereits eine Vielzahl von weiteren Datenbanken zur Auswertung optimiert. Fragen Sie uns gern nach Ihrem System.

Andreas Koblischke
datenkultur GmbH

Jet Enterprise macht auch Jet Essentials besser

Mit dem Einsatz von Jet Reports Enterprise werden viele Jet Essentials Berichte…

  • beschleunigt.
  • einfacher zu erstellen.
  • leichter zu pflegen.
  • ein vergleichbares Ergebnis liefern.

Warum das so ist, das möchte ich im folgenden erklären:

Eine der wichtigsten Aufgaben von Jet Enterprise ist das Bereitstellen einer optimalen Datenablage für Auswertungen. Ein ERP System wie z.B. Dynamics NAV (Navision) ist nämlich immer für die Eingabe optimiert. Daher gibt es in einem ERP-System meist enorm viele Tabellen. Für Auswertungen ist es aber viel praktischer, wenn nur wenige Tabellen mit den wesentlichen Inhalten bereitstehen.

Das Data-Warehouse
In einem Business Intelligence (BI) Projekt findet man oft eine separate Datenbank, in der Daten für die Auswertung bereit gestellt werden. Jet Enterprise verwendet auch hier den Microsoft SQL-Server. Aus dem Quellsystem  (Z.B. Dynamics NAV) werden einzelne Tabellen ausgelesen. Auf dem Weg in die Data-Warehouse Tabellen werden die Daten bereinigt, ergänzt, optimiert und zusammengefügt. Als Ergebnis finden sich Tabellen, die für die Auswertung perfekt geeignet sind.

Jet Essentials und das Data-Warehouse
Mit Jet Enterprise bekommt man automatisch auch das Recht die Data-Warehouse Tabellen mit den bekannten Jet Essentials Befehlen (NL und NF) auszulesen. Nachfolgend bringe ich ein paar Beispiele dafür vor:

Im Dynamics NAV gibt es sogenannte Posten-Tabellen. In diesen Tabellen werden Buchungssätze gespeichert. Die Tabelle Wertposten beinhaltet die Betragsbuchungen für Artikel. Diese Tabelle möchte ich für die Beispiele verwenden.

  • Fehlende Daten ergänzen
    In der Tabelle Wertposten gibt es ein Buchungsdatum (Wann wurde die Buchung durchgeführt). Es fehlt aber das Belegdatum (Ab wann wird die Fälligkeit berechnet). Dieser Wert steht bei Dynamics NAV nur in den Tabellen für bereits gebuchte Belege (Gebuchte Rechnung, Gebuchte Gutschrift, usw.). Mit einem Business Intelligence Werkzeug wie Jet Enterprise kann man die Data-Warehouse Daten beim Füllen mit weiteren Daten aus anderen Tabellen anreichern. In der Data-Warehouse Tabelle für die Artikel-Betragsbuchungen (Z.B. Gebuchte Verkaufstransaktionen) sind nun sowohl das Buchungsdatum als auch das Belegdatum zur Auswertung verfügbar. Es braucht nur im NL-Befehl darauf gefiltert werden. Das macht ein Jet Essentials Auswertung deutlich übersichtlicher und viel schneller, da die langsamen Jet Essentials Befehle Link und Filter nicht gebraucht werden.
  • Tabellen zusammenfügen
    In der Tabelle Wertposten werden nur Betragsbuchungen für Artikel gespeichert. Im ERP-Dynamics NAV gibt es noch weitere Positionsarten (Ressourcen, Sachbuchungen, Anlagen, …) die Beträge aufweisen können. Deren Buchungen werden in weiteren Tabellen gespeichert (Gebuchte Verkaufsrechnung, Gebuchte Verkaufsgutschriften,…). Mit einem Business Intelligence Werkzeug wie Jet Enterprise kann man eine Data-Warehouse Tabelle (Z.B. Gebuchte Verkaufstransaktionen) aus verschiedenen Quellen füllen (Wertposten, Geb. Verkaufsrechung, Geb. Verkaufsgutschrift, …). Die verschiedenen Daten können im NL-Befehl summiert werden. Das macht eine Jet Essentials Auswertung übersichtlicher und schneller, weil nur ein NL-Befehl für mehrere Tabellen erforderlich ist.
  • Nur Benötigte Felder und Tabellen verwenden
    In einer Quelldatenbank wie Dynamics NAV gibt es sehr viele Tabellen und Felder. Der Großteil davon ist für Auswertungen gar nicht relevant. Mit einem Business Intelligence Werkzeug wie Jet Enterprise kann man explizit auswählen welche Tabellen und Felder dem Auswertenden zur Verfügung gestellt werden. Es ist auch einfach möglich die Tabellen und Felder einen verständlicheren Namen zu geben. Im Dynamics NAV gibt es in der Tabelle Wertposten z.B.  Felder für den Wert des ursprünglichen Einkaufsbetrages [Einkaufsbetrag] und dem Lagerwertanteil [Einstandsbetrag]. Die Felder sind dann auch noch in tatsächlich (Kosten bereits gebucht) und erwartet (Kosten nur erfasst) aufgeteilt. Nicht jeder Designer eines Jet Essentials Berichtes kennt die Unterschiede. Das führt schnell zu falschen Auswertungen. Wenn Sie nur die Summe der beiden Einstandsbeträge als Feld im Data-Warehouse anbietet, dann kann ein Jet Essentials Designer gar kein falsches Feld mehr verwenden. Es sind auch keine Excel-Hilfsspalten zur Addition erfoderlich. Das mach eine Auswertung übersichtlicher und schneller. Ähnliche Berichte werden zu dem ein vergleichbares Ergebnis liefern.

Fazit
Ein Data-Warehouse beschleunigt und vereinfacht Jet Essentials erheblich. Berichte anderer Jet Essentials Designer werden vergleichbar, weil nur bereitgestellte Formeln und Felder verwendet werden können. Das Zusammenstellen der Data-Warehouse Tabellen ist das Intelligence aus Business Intelligence. Das Erstellen der eigentlichen Auswertungen ist danach recht simpel. 

Andreas Koblischke
datenkultur GmbH

Unterschiede der Editionen – Enterprise

Jet Reports Express ist seit der NAV 2009 Version Bestandteil der Produktlizenz von Dynamics-NAV. Wir sind oft gefragt worden was die Kauf-Versionen von Jet Reports mehr leisten können als die Express Version. In diesem Blog-Post möchte ich die Unterschiede zur Enterprise Version erklären.

Der Funktionsumfang der Editionen baut aufeinander auf. Die Essentials-Version beinhaltet auch alle Funktionen der Express-Version. Entsprechend beinhaltet die Enterprise-Version auch alle Funktionen der beiden kleineren Editionen.

Jet Reports Enterprise
Diese Version der Jet Reports Produktreihe beinhaltet alle Funktionen der Essentials-Version. Nachfolgend werden nur die zusätzlichen Funktionen beschrieben.

Die Enterprise Version ist etwas ganz anderes, als die beiden kleineren Editionen. Während Express und Essentials Daten visualisieren stellt die Enterprise Version Daten zur Visualisierung bereit.

Business Intelligence (BI)
Wikipedia legt den BI-Begriff recht weit aus. Ich beschränke mich auf die wesentlichen Komponenten für das Auswerten eines ERP Systems wie Dynamics NAV (Früher bekannt als Navision). Ein ERP System ist für die zügige Eingabe von Daten optimiert. Ein BI-System fügt unstrukturierte Daten zusammen, bereinigt die Daten und berechnet die Zwischenergebnisse für einfache und schnelle Auswertungen.

Der ETL-Prozess
Die Daten werden zeitgesteuert aus einem oder mehreren Quellsystemen ausgelesen. Das geschieht in drei Schritten: (E)extrahieren, (T)ransformieren und (L)aden. Die meisten Business Intelligence Systeme verwenden eine eigene Datenbank.

Daten aus den Quellen auslesen (Extrahieren)
Jet Enterprise setzt auf den Microsoft SQL-Server, den die meisten Dynamics-NAV Kunden ohnehin bereits haben. Die Daten werden aus dem Navision ausgelesen und in die Datenbank für die Rohdaten (Staging Area) eingelesen.

Daten bereinigen (Transformieren)
Daten in einem ERP-System sind oft unvollständig. Ein typisches Beispiel dafür sind neu eingeführt Dimensionen. Ältere Buchungen konnten noch nicht mit den neueren Dimensionswerten erstellt werden. Beim Einlesen der Daten in die Staging Area können Daten ergänzt oder korrigiert werden. Bei dem Beispiel könnten man z.B. für ältere Werte die Vorgaben vom Debitor übernehmen. Das ist zwar nicht immer perfekt, aber oft viel besser als gar keine Zuordnung.

Daten strukturieren (Laden)
In Postentabellen (Buchungen) werden nur eindeutige Schlüsselwerte auf die Stammdaten eingetragen (Platz in der Datenbank sparen). Für Auswertungen ist es viel besser zusammengehörige Daten in einer einzigen Tabelle zu kombinieren. Für diese Funktion benutzt Jet Reports Enterprise noch eine zweite Datenbank, die Data Warehouse (DWH) genannt wird. Die kombinierten Tabellen des Data Warehouse werden definiert und aus den bereits bereinigten Daten der Staging Area gefüllt.

Beispiele für das Strukturieren von Daten sind

  • Mehrere Tabellen mit vergleichbarem Inhalt
    Im Dynamics-NAV sind die gebuchten Verkaufsrechnungen und die gebuchten Verkaufsgutschriften in zwei verschiedenen Tabellen. Im Data Warehouse kann man die beiden Tabellen in eine Tabelle zusammenführen. Zusätzlich braucht man den Datensätzen nur einen Typ mit geben (Rechnung, Gutschrift), an dem man die Daten in der gemeinsamen Tabelle unterscheiden kann.
  • Fehlende Daten in einer Postentabelle
    Im Dynamics-NAV sind z.B. in den Artikelposten (Lagerbewegungen) die Orte des Debitors nicht enthalten. Beim Füllen des Data Warehouse kann man jeden Satz automatisch um den Ort aus dem Debitor ergänzen. Das geht auch über mehrere Tabellen.

Erstellen des ETL-Prozesses
Das Erstellen von ETL-Prozessen ist auf dem Microsoft SQL-Server fast eine Raketenwissenschaft. Es ist ganz anders, als man es selbst als erfahrener Entwickler mit SQL gewohnt ist. Mit Jet Enterprise ist aber zum Glück gar nicht nötig den Analysis-Service und den Integration-Service persönlich zu kennen. Das nimmt einem der Jet Data Manager ab. Alle Prozesse vom Konfigurieren der Datenquelle über das Erstellen zusätzlicher Felder bis zum Anlegen eines OLAP Würfels können per Drag & Drop erstellt werden. Auch das zeitgesteuerte Füllen und Berechnen der Daten wird über den Jet Data Manager ausgeführt. Wer ein wenig Erfahrungen mit Tabellen und ERP-Systemen hat, der lernt die Handhabung innerhalb von 2 Tagen.

Visualisieren des Data Warehouse
Auf den bereinigten und strukturierten Daten des Data Warehouse kann man Daten recht einfach auswerten. Da die Enterprise Version auch die komplette Jet Reports Essentials Version beinhaltet kann man die bereitgestellten Daten ohne viel Mühe zu ansehnlichen Berichten zusammenstellen. Das entlastet auch die IT-Abteilung. Man muss die komplexe Tabellenstruktur ja nur einmal bereitstellen. Die erforderlichen Berichte können sich die Endanwender jederzeit selbst erstellen.

Wer bereits mit Jet Reports Essentials arbeitet, der kann auf diesem Weg seine komplexeren Berichte evtl. erheblich beschleunigen. Statt viele langsame Filterfunktionen oder gar viele unnötige Daten nach Excel zu laden kann man mit Jet Reports Essentials direkt auf das Data Warehouse zugreifen. So kann auch ein Jet Reports Anfänger selbständig professionelle Berichte erstellen.

Multidimensionale Auswertungen
Das Data Warehouse ist auch Grundlage für das Bilden von multidimensionalen Würfeln (Cubes). Ein Cube ist wie das Data Warehouse einer separaten Datenbank ähnlich. Die Daten werden nur anders im Datenbank-Server abgelegt. Auch über Cubes und OLAP (Online Analytical Processing) lässt sich bei Wikipedia einiges nachlesen. Einfach gesprochen können Filterkriterien (Dimensionen)  und Ergebniswerte (Measures) definiert werden. Für alle Kombinationen werden die Zwischenergebnisse berechnet.

Als Beispiel mag die Finanzbuchhaltung von Dynamics-NAV dienen: Das Feld Betrag in den Sachposten ist ein Ergebniswert (Measure). Das Buchungsdatum und die Sachkontonummer sind Filterkriterien (Dimensionen). In einem Cube werden nun alle Kombinationen aus den Werten der beiden Dimensionen vorberechnet abgelegt. Die Frage welchen Betrag ich auf welchem Konto habe oder was im Januar auf die Erlöskonten gebucht wurde liefert das System innerhalb von Millisekunden. Die Berechnung hat ja schon beim ETL-Prozess stattgefunden.

Visualisieren der multidimensionalen Würfel
Erstes Mittel der Wahl sind bei Cubes aus dem Microsoft SQL-Server immer die Pivot-Tabellen von Excel. Es ist nämlich mit nur wenigen Mausklicks möglich eine Excel-Pivot-Tabelle direkt aus einem Cube zu erstellen. Man hat dann praktisch alle relevanten Daten aus dem ERP-System per Drag and Drop zur Verfügung. Damit kann jeder auswerten. Das ist so einfach, dass auch die Chefetage und der Vertrieb damit locker zurecht kommen. Es ist dabei auch noch rappelschnell.

Die Würfel können aber auch mit den Funktionen von Jet Essentials verwendet werden. So kann ich jedes Design in Excel mit Daten füllen und trotzdem die Power von OLAP nutzen.

Unterschiedliche Datenquellen
Mit Jet Enterprise können unterschiedliche Datenquellen zusammengeführt werden. Es läuft mit allen Datenquellen zusammen, die einen Zugriff auf die Datenbank per ODBC oder OLEDB zulassen. Jet Enterprise ist damit nicht allein auf Dynamics-NAV zugeschnitten. Man kann es beispielsweise auch mit SAP, Oracle oder Sage verwenden. Es gibt für Dynamics-NAV aber eine besonders optimierte Datenbank-Verbindung. Zu dem steht für Dynamics-NAV ein vordefiniertes Set an Cubes bereit, das im Lieferumfang enthalten ist und selbständig an die eigenen Bedürfnisse angepasst werden kann. Besondere Datenbank-Verbindungen mit Cube Sets gibt es auch für Dynamics-AX und Great Plains.

Nachteile von Jet Enterprise
Die Daten werden in regelmäßigen Zyklen aus den Quellsystemen durch den ETL-Prozess in die Auswertungsdatenbanken geladen. Die Daten sind daher so gut wie nie ganz vollständig, wenn man eine Auswertung laufen lässt. Für die meisten Auswertung reichen die Daten des Vortages. Für einen Bericht, der absolut aktuell die Daten aus dem ERP System darstellen muss, sind die OLAP Funktionen von Jet Reports Enterprise eine schlechte Wahl. Wie gut, dass auch alle Funktionen von Jet Essentials in dem System enthalten sind. Denn Auswerten auf den Ursprungsdaten ist gerade die Stärke von Jet Essentials.

Fazit
Gemeinsam sind wir noch stärker. Jet Essentials ist schon eine Macht. Zusammen mit Jet Enterprise ist es aber kaum zu schlagen. Ich kann nur empfehlen es sich mal anzuschauen. In unserer Jet Enterprise Broschüre finden Sie noch weitere Informationen.

Andreas Koblischke
www.datenkultur.de

Unterschiede der Editionen – Essentials

Jet Reports Express ist seit der NAV 2009 Version Bestandteil der Produktlizenz von Dynamics-NAV. Wir sind oft gefragt worden was die Kauf-Version Jet Reports Essentials mehr leisten kann als die Express Version. In diesem Blog-Post möchte ich die Unterschiede erklären.

Der Funktionsumfang der Editionen baut aufeinander auf. Die Essentials-Version beinhaltet auch alle Funktionen der Express-Version. Entsprechend beinhaltet die Enterprise-Version auch alle Funktionen der beiden kleineren Editionen. Um die Unterschiede zu erklären beschreibe ich jeweils die zusätzlichen Funktionen der jeweiligen Version.

Jet Reports Essentials
Diese Version der Jet Reports Produktreihe beinhaltet alle Funktionen der kleineren Express-Version. Nachfolgend werden nur die zusätzlichen Funktionen beschrieben.

NL-Funktion
Mit diesem zusätzlichen Excel-Befehl können aus jedem Bereich Ihres Navisions (oder aus Ihrer ODBC-Datenbank) Werte ermittelt werden. Als Parameter geben Sie an aus welcher Tabelle die Daten kommen, welches Feld betrachtet werden soll und auf welche Datensätze gefiltert werden soll. Ein weiterer Parameter bestimmt was der Befehl aus geben soll.

Für eine einzige Excel-Zelle kennt der NL-Befehl folgende Funktionen:

  • Die Ausgabe eines gefunden Wertes (Z.B den Namen des Artikels mit der Nummer AO999)
  • Die Summe von Zahlen (Z.B. der Vorjahresumsatz der Artikel aus der Gruppe Maschinen)
  • Die Anzahl von Datensätzen (Z.B die Anzahl der freigegeben Aufträge für den Januar)
  • Die Anzahl unterschiedlicher Datensätze (Z.B die Anzahl der verkauften Artikelgruppen in KW3)
  • Ein Bild aus der Datenbank (Z.B. Das Bild des Artikels AO999)
  • Die Bezeichnung einer Tabelle oder eines Feldes in der aktuellen Sprache (Z.B. für multilinguale Auswertungen)

Der Befehl kennt auch Funktionen mit denen mehr als eine Excelzelle gefüllt werden kann:

  • Die Auflistung von Werten in Excel-Zeilen (Z.B. eine Liste der offenen Einkaufsbestellnummern)
  • Die Auflistung von Werten in Excel-Spalten (Z.B. die angesprochenen Kostenträger des Monats)
  • Die Auflistung von Werten auf Excel-Blättern (Z.B. die Debitornummer der letzten Verkäufe)

Zusätzlich kann der Befehl auch zum erweiterten Filtern über mehr als eine Tabelle verwendet werden.

Alle diese Befehle kann man wunderbar kombinieren. Im Post Replikatoren: Zeilen, Spalten, Blätter im Abschnitt “Replikatoren verwenden” steht beschrieben, wie man mit vier einfachen NL Befehlen bereits einen netten Bericht erstellen kann. Für die Erstellung des Berichtes habe ich nicht mal zwei Minuten gebraucht.

Optional kann jedem NL-Befehl mitgegeben aus welcher Datenbank er lesen soll und/oder aus welchem Mandant die Daten gelesen werden sollen. Damit kann man z.B. Mandanten auf einem Excel-Blatt konsolidieren oder die Navision Datenbank mit einer externen Zeiterfassungssoftware gemeinsam auswerten.

NF-Funktion
Mit der NF Funktion kann man mehrere Felder eines Datensatzes mit nur einem Datenbankzugriff ermitteln. Die Funktion bietet auch Flowfilter Felder für Flowfields in Dynamics NAV.

NP-Funktion
Dieser Befehl liefert Hilfs- und Mengenfunktionen sowie Auflistungen für das Erstellen von Berichten mit Jet Reports.

  • Es gibt eine Funktion zu Beschleunigung bei volatilen Funktionen wie z.B. =heute()
  • Man kann aus zwei Datumswerten einen Navision Filter erstellen 1.1.12..31.12.12
  • VBA übliche Formatierungen können in Excel Zellen verwendet werden
  • Das Ergebnis einer Codeunit kann via Webservice abgerufen werden
  • Für multilinguale Auswertungen kann der gewählte Sprachcode des aktuellen Excelbenutzers ausgelesen werden

Man kann sich die Grundlage der Mengenfunktionen wie temporäre, interne Tabellen vorstellen. Folgende Mengenoperation können mit dem Befehl bearbeitet werden:

  • Es können mehrere Ergebniswerte mittelsTrennzeichen zusammengesetzt werden. Man kann damit z.B. Navision-Filter wie 1000|2000|3000 erstellen.
  • Texte können anhand eines Trennzeichens in Einzelwerte aufgeteilt werden. Eine Anwendung wäre zum Beispiel Semikolon separierte Werte in Einzelwerte aufzulösen.
  • Es können Mengen vereinigt werden. Eine klassische Anwendung dafür ist das Zusammenfügen von Schlüsselwerten aus verschiedenen Tabellen wie z.B. die Belegnummer aus gebuchten Rechnungen und gebuchten Gutschriften.
  • Schnittmengen können erstellt werden. Das ist z.B. nützlich, wenn man ermitteln möchte welche Debitoren sowohl in diesem als auch im letzen Jahr etwas gekauft haben.
  • Differenzenmengen können erstellt werden. Mit dieser Funktion kann man z.B. ermitteln welche Artikel nur in einem der beiden vergangenen Monate gekauft wurden.

Folgende Auflistungen liefert der Befehl

  • Eine filterbare Liste von Ganzzahlen ohne Datenbankzugriff
  • Eine filterbare Liste von Datumsbereichen ohne Datenbankzugriff
  • Eine filterbare Liste der Mandanten
  • Eine Liste der eingerichteten Jet Reports – Datenquellen

Tablebuilder
Der Tablebuilder ist bietet folgende zusätzliche Funktionen:

  • Es können auf Basis der Datenfelder individuelle Berechnungsfelder erstellt werden
  • Die Tablebuilder Konfiguration kann gespeichert und geladen werden
  • Die Favoriten für Felder und Tabellen können verwendet werden

Steuerbefehle
Es gibt einige Steuerbefehle, die Jet Reports Ausgaben automatisch optimieren.

  • Berichte können mit Optionen wie z.B. einen Zeitraum oder die Debitorennummer versehen werden. Der Benutzer des Berichtes kann dadurch Parameter eingeben, ohne den Bericht genauer zu kennen.
  • Eine Zeile oder Spalte ist im Design zu sehen, aber im ausgeführten Bericht ausgeblendet.
  • Eine Zeile oder Spalte ist im Design zu sehen, aber im ausgeführten Bericht ausgeblendet, wenn eine bestimmte Bedingung erfüllt. Damit kann man z.B. leere Ergebniswerte automatisch Ausblenden lassen.
  • Eine Spalte oder Zeile wird nach der Berichtsausführung auf die optimale Breite bzw. Höhe gestellt.
  • Im Designmodus wird der Blattschutz aus- und im Berichtsmodus angeschaltet.
  • In einem ausgeführt Bericht werden statt Jet Reports Formeln nur noch die Ergebniswerte angezeigt. Damit kann ein Bericht auch an Excel-Nutzer ohne Jet Reports gesendet werden.
  • Sofortaktualisierungen durch Parameteränderungen können auch im ausgeführten Berichtsmodus erlaubt werden. Damit kann man z.B. ein Dashboard erstellen.

Berechtigungen
Es gibt drei verschiedene Anwendungsarten für das Erstellen, Aktualisieren und Anschauen von Jet Reports Auswertungen.

  • Designer
    Die Designer können Berichte ausführen und neuen Berichte erstellen. Ihnen stehen alle Funktionen und Assistenten zur Verfügung. Designer sind namentlich in der Lizenz geführt. Für den Design-Modus muss Jet Reports installiert sein.
  • Viewer
    Die Viewer können Berichte ausführen (Werte aktualisieren). Sie können die Formeln nicht bearbeiten. Wenn der Designer Parameter für einen Bericht vorgegeben hat, dann kann ein Viewer die Parameter anpassen. Für den Viewer-Modus muss Jet Reports installiert sein.
  • Exceluser
    Ausgeführte Berichte können von jeden Excel-Benutzer geöffnet werden. Das Aktualisieren der Daten ist nicht möglich. Jet Reports braucht nicht installiert zu sein.

Scheduler
Erstellte Berichte können zeitgesteuert automatisch ausgeführt werden. Die Berichte können als Excel-Tabelle, als PDF oder als HTML ausgegeben werden. Das erstelle Dokument kann in einem Dateiorder abgelegt oder per Mail versendet werden.

Report Wizard
Mit diesem Assistenten kann man sich einfache Berichte per Mausklick erstellen. Es werden Jet Reports Befehle daraus erstellt, die einen einfachen Einstieg für komplexere Berichte ermöglichen.

Report Builder
Mit diesem Assistenten kann man sich auf übersichtliche Weise komplexe Berichte erstellen, ohne die Jet Reports Befehle zu kennen. Der Report Builder ermöglicht das einfache Erstellen von Berichten mit multiblen Gruppierungen und multiblen Tabellen.

Konfiguration
Für das automatische Versenden von ausgeführten Berichten per EMail kann ein SMTP-Server angegeben werden. Die Anwendungs- und Datenquellenkonfiguration kann unternehmensweit auf einen MS-SQL-Server ausgelagert werden. Alternativ zum Zugriff über CFront kann der Zugriff über Web-Service eingerichtet werden. Damit kann Jet Reports auch nur mit dem RTC-Client betrieben werden. Es können beliebig viele Datenquellen angelegt werden, wenn mehr als eine Datenbank ausgewertet werden soll.

Lizensierung
Diese Version ist ab der Navision Client Version 3.10 freigegeben. Mit leichten Einschränkungen kann diese Version auch ab der Navision Client Version 2.01b eingesetzt werden.  Den vollen Funktionsumfang der aktuellen Version erhält man aber erst ab der Dynamics NAV Client Version 4.02. Für jeden Navision-Lizenzschlüssel muss man eine Jet Reports Connector Lizenz erwerben. Zusätzlich zum Navision-Connector wird auch eine Jet Reports ODBC Connector Lizenz angeboten. Damit kann man alle Jet Reports Funktionen auch auf beliebigen ODBC Datenquellen anwenden. Für den Betrieb von Jet Reports ist das CFront-Granule in der Navision Lizenz erforderlich.

Zusammenfassung
Jet Reports Essentials ist eine Macht. Man kann damit jeden in Excel darstellbaren Bericht automatisch aus einer oder mehreren Datenquelle abrufen. Aus jeder Tabelle und aus jedem Feld der Datenbank. Per Knopfdruck sind alle Zahlen des Berichtswesens aktuell. Alle Formatierungen sind bereits erledigt. Die Express Version ist nur ein Appetit Happen zum Kennenlernen. Die Essentials Version spielt in einer anderen Liga. In unserer Jet Reports Essentials Broschüre finden Sie noch weitere Informationen.

Andreas Koblischke
www.datenkultur.de

Neue Version verfügbar: Jet Essentials 2012 R2 Build 12.5.13099.0

Es gibt eine neue Version von Jet Reports zum Download.

Für diese Version muss Ihr Update mindestens noch bis zum 11.4.2013 in Ihrer Jet Reports Lizenz eingetragen sein.

Änderungen seit Version 12.5.13072.0

  • Fehler behoben: Funktionsergebnisse blieben auch gespeichert, wenn man die Standard-Datenquelle oder den Mandanten im Jet Menü geändert hat.
  • Fehler behoben: Drilldown funktionierte nicht, wenn die Jet Funktionen klein geschrieben wurden (NL, NF, NP, GL).
  • Fehler behoben: Eine SSQL Verbindung zu einem SQL-Server brachte die Fehlermeldung “Keyword not supported: ‘use encrypted data’.”
  • Fehler behoben: Im Jfx wurde hat der automatische Feldvorschlag für Link das Drop Format nicht berücksichtig.
  • Fehler behoben: Wenn in NAV 2013 Datenquellen keine Sprachmodule geladen wurden, dann trat ein Fehler auf. (Achtung: Es müssen die neuen NAV Objekte “Jet Reports Objects.fob” verwendet werden)
  • Fehler behoben: Die Gültigkeitsprüfung der Jet Optionen funktioniert nicht mit +Sperren oder +Werte wenn in der Prüfung Jet Funktionen verwendet wurden.

Alle Änderungen der letzten Versionen können Sie in der ChangeList nachlesen.

Für den Download der Dateien und Informationen brauchen Sie einen Zugriff auf die Supportseiten von Jet Reports. Wenn Sie dort noch keinen Zugang haben, dann können Sie sich hier für den Zugang anmelden.

Bitte verwenden Sie für

– 32 Bit Office diese Installationsversion

– 64 Bit Office diese Installationsversion

Wichtig: Sie können die aktuelle Version nur installieren, wenn Sie noch in der Wartung sind. Sie finden die Information in Ihrer Jet Reports Lizenzdatei im Punkt “Updates thru”. Die Lizenzdatei ist ein Textdatei, die auf .JLF endet und sich oft im Programmverzeichnis von Jet Reports befindet. In der Datenquellen-Einrichtung können Sie die Lizenzdatei ebenfalls einsehen. In alten Versionen gab es einen Knopf “Teste Verbindung”. In den neueren Versionen finden Sie auf dem Reiter “Allgemein” unten links einen Link. Wenn Sie darauf klicken, dann wird Ihre Lizenzdatei geöffnet. Bitte beachten Sie, dass es sich um ein amerikanisches Datumsformat handelt (Jahr/Monat/Tag).

Andreas Koblischke
www.datenkultur.de

Berechnungen summieren in einem NL Befehl

In dem Post Aging Report am Beispiel Artikelbestand habe ich beschrieben wie die Restbeträge näherungsweise berechnet werden können. Die Werte sind nicht genau wenn für einen Artikel in einem Intervall unterschiedliche Einstandspreise vorgekommen sind. In diesem Fall müsste man alle Zeilen der Artikelposten auflisten und die Berechung einzeln ausführen. Mit Jet Reports kann man das auch in einer Zelle ausführen. Das ist allerdings schon etwas anspruchsvoller und setzt sichere Kenntnise der Grundbefehle voraus.

In dem Beispielbericht wird zur Ermittlung des Restbetrages folgende Formel verwendet:

Restbetrag = ((“Einstandsbetrag (tatsächl.) ” + “Einstandsbetrag (erwartet)”) / “Menge”) * “Restmenge”

In dem Beispielbericht werden die Felder der Formel einzeln summiert und dann die Berechnung über die Summen ausgeführt . Wie schon beschrieben passt das nur exakt, wenn die Einstandspreise der Berechnung alle gleich waren. Damit das Ergebnis immer korrekt ist, muss man die Berechnung für jede Artikelpostenzeile einzeln ausführen und das jeweilige Ergebnis summieren. In Jet Reports kann man das mit NF-Funktionen erreichen, die in NL-Funktionen verwendet werden. Statt eines Feldnames kann man nämlich auch eine Berechnung an einen NL(“Summe”;..)-Befehl übergeben werden.

=NL(“Summe”;”Artikelposten”;{Formel für den Restbetrag};”Artikelnr.”
;”4711″;”Buchungsdatum”;”1.1.12..31.1.12″;”Restmenge”;”<>0″)

Der NL-Befehl wird bei dieser Variante jede Zeile der Artikelposten durchlaufen, die dem Filter entsprechen und das Berechnungsergebnis summieren. Intern steht Jet Reports damit ein Zeilenschlüssel zur Verfügung (Wie aus einem NL(“Zeilen”;…) Befehl). Diesen Schlüssel kann man mit NF-Befehlen verwenden. Den Schlüssel muss man aber gar nicht angeben, denn der umgebende NL-Befehl “weiß” ja bereits welches gerade die aktuelle Zeile der Artikleposten ist. Man kann den Schlüssel innerhalb eines NL-Befehls daher einfach leer lassen. Die Berechnung sähe dann so aus:

Restbetrag = (NF(;”Einstandsbetrag (tatsächl.) ” + NF(;”Einstandsbetrag (erwartet)”)) / NF(;”Menge”)) * NF(;”Restmenge”)

Das sieht schon gut aus. Es wird aber leider noch etwas komplizierter. Um die Berechnung in einem NL-Befehl durchzuführen muss der Begriff die Form einer Excel-Formel haben. Das wird Jet Reports mit einem einleitenden Gleichheitszeichen signalisiert.

“={Formel für den Restbetrag}”

Sieht einfach aus, bringt aber eine weitere Schwierigkeit in unsere Aufgabe. Damit unsere Berechnung mit den NF-Befehlen klappt, brauchen wir die Anführungszeichen der Feldnamen. Ein Anführungszeichen beendet aber leider das einleitende Anführungszeichen der gesamten Formel. Das kann man in Excel eingeben, indem man vor jedes auszugebende Anführungszeichen ein weiteres Anführungszeichen stellt.

“=(NF(;””Einstandsbetrag (tatsächl.)”” + NF(;””Einstandsbetrag (erwartet)””)) / NF(;””Menge””)) * NF(;””Restmenge”)””

Das Erfassen der Anführungszeichen kann recht unübersichtlich werden. Daher hat Jet Reports eine Funktion dafür integriert. Im Tools-Menü von Jet Reports findet man den Punkt “Quote”. Das setzt die Anführungszeichen für die aktuelle Zelle. Der Menüpunkt Unquote stellt den Ursprungszustand wieder her. Ich baue mir die Befehle daher Schritt für Schritt zusammen und verwende zum Schluss die Quote funktion:

  • NF-Befehl mit dem Jfx erstellen
    (Mit zugehörigem Zeilenschlüssel um den Feldnamen auszuwählen)
    =NF($E$19;”Einstandsbetrag (tatsächl.))
  • NF Befehl zum Text umwandeln und den Schlüssel entfernen
    NF(;”Einstandsbetrag (tatsächl.)”)
  • Den Text mit dem Quote-Befehl aus dem Tools-Menü umwandeln
    =”NF(;””Einstandsbetrag (tatsächl.)””)”

Das ist zugegebenermaße etwas kompliziert und nur was für Jet Reports Experten, aber die Funktion selber ist sehr mächtig. Die erstellte Formel können wir nun einfach in den Feld-Parameter vom NL(“Summe”;..)-Befehl eintragen.

=NL(“Summe”;”Artikelposten”; “=(NF(;””Einstandsbetrag (tatsächl.)”” + NF(;””Einstandsbetrag (erwartet)””)) / NF(;””Menge””)) * NF(;””Restmenge”)””;”Artikelnr.”
;”4711″;”Buchungsdatum”;”1.1.12..31.1.12″;”Restmenge”;”<>0″)

Mit diesem Befehl wird nun tatsächlich die Berechnung für jede Zeile der gefilterten Artikelposten ausgeführt. Das Ergebnis ist eine stets korrekte Berechnung des Lagerbestandes. Besonders nett ist dabei, dass sogar der Drilldown auf die Artikelposten funktioniert.

Ich habe das auf den vorherigen Aging-Bericht angewendet. Nun entfallen alle Zwischenberechnungen. Da diese Funktion ohnehin was für Experten ist, habe ich die Spalten auch dynamisch erstellen lassen. Ich habe jetzt nur noch zwei NL(“Summe”;…)-Befehle im Bericht. Einen für die Restmenge und einen für den Restbetrag.

Ausgeführt sieht der neue Bericht dann so aus:

Item Aging Experte Ausgefuehrt

Item Aging Experte ausgefuehrt

Per Drilldown kann man die Werte in der Anwendung kontrollieren

Item Aging Experte Drilldown

Item Aging Experte Drilldown

Im Designmodus kann man den Aufbau erkennen.

Item Aging Experte Design

Item Aging Experte Design

Den Bericht können Sie hier herunterladen:

JetReports-Artikelbestand-Aging-Experte.xls

Die Formeln im Bericht sind in englischer Sprache gehalten. Auf diese Weise kann
der Bericht auch auf installation in anderen Sprachen als deutsch ausgeführt
werden. Das funktioniert, weil Jet Reports in den Formeln die gewählte Sprache
(Caption) und alternativ den programmierten Feldnamen (Name) verwendet. Wenn Sie
Ihre Navision in verschiedenen Sprachen betreiben, dann empfehle ich deswegen
das Sprachmodul in den Datenquelleneinstellungen gar nicht erst zu laden. Dann
braucht man die Formeln in den Berichten nicht zu übersetzen.

 

Andreas Koblischke
datenkultur GmbH

 

Neue Version verfügbar: Jet Essentials 2012 R2 Build 12.5.13072.0

Es gibt eine neue Version von Jet Reports zum Download.

Für diese Version muss Ihr Update mindestens noch bis zum 14.3.2013 in Ihrer Jet Reports Lizenz eingetragen sein.

Änderungen seit Version 12.5.13039.0

  • Support für alle vier Authentifizierungsmethoden von Dynamics NAV 2013 hinzugefügt.
  • Geschwindigkeit für Dynamics NAV 2013 Datenquellen verbessert.
  • Fehler behoben: Dynamics NAV Datenquellen sortierten z.T. nicht korrekt, wenn mehr als zwei Sortierfelder angeben wurden
  • Fehler behoben: Im Jfx-Assistenten waren für die Funktionen NL(“Zeilen”;..) und NL(“Spalten”;..) die Spezialfilter (z.B. Link=, etc.) nicht im Lookup verfügbar.

Alle Änderungen der letzten Versionen können Sie in der ChangeList nachlesen.

Für den Download der Dateien und Informationen brauchen Sie einen Zugriff auf die Supportseiten von Jet Reports. Wenn Sie dort noch keinen Zugang haben, dann können Sie sich hier für den Zugang anmelden.

Bitte verwenden Sie für

– 32 Bit Office diese Installationsversion

– 64 Bit Office diese Installationsversion

Wichtig: Sie können die aktuelle Version nur installieren, wenn Sie noch in der Wartung sind. Sie finden die Information in Ihrer Jet Reports Lizenzdatei im Punkt “Updates thru”. Die Lizenzdatei ist ein Textdatei, die auf .JLF endet und sich oft im Programmverzeichnis von Jet Reports befindet. In der Datenquellen-Einrichtung können Sie die Lizenzdatei ebenfalls einsehen. In alten Versionen gab es einen Knopf “Teste Verbindung”. In den neueren Versionen finden Sie auf dem Reiter “Allgemein” unten links einen Link. Wenn Sie darauf klicken, dann wird Ihre Lizenzdatei geöffnet. Bitte beachten Sie, dass es sich um ein amerikanisches Datumsformat handelt (Jahr/Monat/Tag).

Andreas Koblischke
www.datenkultur.de

Aging Report – Am Beispiel Artikelbestand

In diesem Beitrag wird das Erstellen eines Berichtes erklärt, der das Alter von Lagerbeständen darstellt.

Da ich nicht alle Formeln in diesem Blog ausschreiben möchte habe ich den Bericht als Demo bereits erstellt. Sie können sich da anschauen, wie das in Excel umgesetzt wurde.

Zuerst muss der jeweilige Datumsbereich bestimmt werden. In meinem Bespiel nehme ich 0 Tage (Heute), die 30 Tage davor und alles was noch älter ist. Natürlich kann man das beliebig erweitern oder sogar per Spalten-Befehl dynamisch gestalten. Ich möchte es aber gern einfach halten.

Datumswerte werden in Excel intern als Zahlen gespeichert und lediglich als Datum formatiert. Man kann daher mit Datumswerten rechnen (1.1.2013 + 30 = 31.1.2013). Mit der Funktion NP(“Datumsfilter”;..) kann man sich daraus leicht einen Filtertext erstellen, den man für NL-Befehle verwenden kann.

Den Bestand eines Artikels kann man mit dem Befehl NL(“Summe”;..) berechnen. Für einen Aging-Bericht muss der Restbetrag aus den Artikelposten für einen Zeitraum summiert werden:

=NL(“Summe”;”Artikelposten”;”Restmenge”;”Artikelnr.”;”4711″;”Buchungsdatum”;”1.1.12..31.1.12″)

Für die Menge ist der Aging Report damit bereits erledigt.

Der Betrag ist nicht so leicht zu ermitteln, da Navision nur die Restmenge direkt in die Artikelposten speichert. Dem Artikelposten zugeordnet ist nur der Einstandspreis für die gesamte Menge. Die kann sich auch noch laufend verändern (Frachtkostenzuschläge, Wechselkurseinflüsse, Umbewertungen …). Man kann es aber näherunsweise ermitteln, wenn sich die Einstandspreise für Artikel innerhalb eines Intervalls nicht erheblich unterscheiden. Dazu muss man:

  1. Die ursprüngliche Menge summieren
  2. Die Einstandspreise (Erwartet und Tatsächlich) summieren
  3. Einen Stückpreis aus den Summen errechen (Summe Preis / Summe Menge)
  4. Den Stückpreis mit dem Restbestand multiplizieren

Ich empfehle die einzelnen Formeln in Hilfsspalten zu platzieren. Man kann das auch in einer Zelle, aber es wird dadurch nur sehr unübersichtlich und schlecht zu pflegen. Die Beträge können wir wieder mittels NL(“Summe”;..) berechnen lassen. Damit das Ergebnis nicht verfälscht wird, summiere ich nur die Bewegungen, die keinen Restbetrag aufweisen. Der Filter “Restbetrag”;”<>0″ macht den Bericht zwar langsamer, aber genauer:

Ursprüngliche Menge:

=NL(“Summe”;”Artikelposten”;”Menge”;”Artikelnr.”;”4711″;”Buchungsdatum”;”1.1.12..31.1.12″;”Restmenge”;”<>0″)

Die selbe Funktion verwende ich für die Felder “Einstandsbetrag (tatsächl.)” und “Einstandsbetrag (erwartet)”. Der Rest ist nur noch Excelformelei.

Es kann vorkommen, dass sie negative Bestände erhalten. Das sind z.B. Verkäufe, die noch mit keinem Zugang ausgeglichen wurden. Damit der Lagerbestand stimmt müssen Sie diese Werte mit verwenden. Ist ja auch eine praktische Nebeninformation.

Ausgeführt sieht der Bericht in meinem Beispiel dann so aus:

Artikelbestand Aging ausgeführt

Artikelbestand Aging ausgeführt

Die Hilfsspalten habe ich mit Excel-Gliederungen ausblenden lassen. So kann man sich das aber noch mal anschauen und kontrollieren. Natürlich kann man die Spalten auch mit dem “Ausblenden” ganz ausblenden.

Artikelbestand Aging Hilfsspalten

Artikelbestand Aging Hilfsspalten

Im Designmodus kann man den Aufbau erkennen.

Artikelbestand Aging Designmodus

Artikelbestand Aging Designmodus

Den Bericht können Sie hier herunterladen:

JetReports-Artikelbestand-Aging.xls

Die Formeln im Bericht sind in englischer Sprache gehalten. Auf diese Weise kann der Bericht auch auf installation in anderen Sprachen als deutsch ausgeführt werden. Das funktioniert, weil Jet Reports in den Formeln die gewählte Sprache (Caption) und alternativ den programmierten Feldnamen (Name) verwendet. Wenn Sie Ihre Navision in verschiedenen Sprachen betreiben, dann empfehle ich deswegen das Sprachmodul in den Datenquelleneinstellungen gar nicht erst zu laden. Dann braucht man die Formeln in den Berichten nicht zu übersetzen.

Andreas Koblischke
datenkultur GmbH

 

Replikatoren: Zeilen, Spalten, Blätter

Mit Jet Reports kann man dynamische Listen erstellen. Dynamisch bedeutet hier, dass die Anzahl der Elemente erst ermittelt wird, wenn die Liste ausgeführt wird. Eine Liste der Sachbuchungen pro Monat enthält in der Regel für jeden Monat eine andere Anzahl an Zeilen (Dynamischer Aufbau). Mit den Jet Reports Replikatoren kann man dynamische Listen erstellen.

Die Replikatoren rufen Datenmengen aus der Datenbank ab. Das Ergebnis kann daher beliebig viele Datensätze enthalten. Eine Replikator-Funktion steht aber in genau einer Excel-Zelle. In dieser Zelle kann auch nur genau ein Wert angezeigt werden. Wenn mehr als ein Datensatz gefunden wird, dann fügen die Replikatoren der Excel-Mappe neue Elemente hinzu (neue Excel-Zeilen, neue Excel-Spalten oder neue Tabellenblätter).

Zeilen

Die neuen Zeilen werden zwischen der Zeile des Befehls und der nachfolgenden Zeile eingefügt. In die neue Zeile wird die gesamte ursprüngliche Zeile kopiert. Die Spalte in der der Zeilenbefehl steht wird mit dem Ergebniswert der betreffenden Zeile überschrieben. Als Ergebnis haben wir eine neue Zeile mit dem zugehörigen Ergebiswert, die ansonsten exakt die selben Excel-Formeln hat wie die Ursprungszeile.

=NL(“Zeilen”;”Sachposten”;”Sachkontonr.”;”Buchungsdatum”;”1.12.2010..31.12.2010″)

Mit meiner Cronus Datenbank von Navision listet dieser Befehl insgesamt 72 unterschiedliche Sachkontonummern untereinander auf. Wenn man in den Zellen die Formeln betrachtet, dann steht in der ersten Zelle der ursprüngliche Befehl. In den 71 folgenden Zeilen steht lediglich das Ergebnis (als Formel in Anführungszeichen, damit Excel keine impliziten Formatierungen darauf ausführt). Wenn man die Steuerspalte A beim ausgeführten Bericht einblendet, dann findet man in allen neu eingefügten Zeilen den Begriff “Auto”. Daran erkennt Jet Reports welche Zeile gelöscht werden muss, wenn man wieder in den Design-Modus zurückschaltet. Tragen Sie in diese Spalte nie etwas anderes ein als die verfügbaren Jet Reports Steuerparameter. Jet Reports könnte anderfalls Ihr Berichtsdesign ruinieren, wenn Sie in den Designmodus zurückschalten.

Spalten

Der Spaltenbefehl funktioniert analog zu dem Zeilen-Befehl. Die neuen Spalten werden zwischen der Spalte des Befehls und der nachfolgenden Spalte eingefügt. In die neue Spalte wird die gesamte ursprüngliche Spalte kopiert. Die Zeile in der der Spaltenbefehl steht wird mit dem Ergebniswert der betreffenden Spalte überschrieben. Als Ergebnis haben wir eine neue Spalte mit dem zugehörigen Ergebiswert, die ansonsten exakt die selben Excel-Formeln hat wie die Ursprungsspalte.

=NL(“Spalten”;”Sachposten”;”Buchungsdatum”;”Buchungsdatum”;”1.12.2010..31.12.2010″)

Mit meiner Cronus Datenbank von Navision listet dieser Befehl vier Tage nebeneinander auf, sofern man die Zelle als Datum formatiert hat. Wenn man in den Zellen die Formeln betrachtet, dann steht in der ersten Zelle der ursprüngliche Befehl. In den 3 folgenden Spalten steht wieder lediglich das Ergebnis. Wenn man die Steuerzeile 1 beim ausgeführten Bericht einblendet, dann findet man in allen neu eingefügten Spalten erneut den Begriff “Auto”. Daran erkennt Jet Reports welche Spalte gelöscht werden muss, wenn man wieder in den Design-Modus zurückschaltet. Auch hier handelt Weise, wer nur erlaubtes in diese Zeile einträgt.

Blätter

Der Blätterbefehl hebt sich von den beiden Kollegen etwas ab. Es werden keine Excel-Zellen eingefügt werden, sondern ganze Tabellenblätter. Das Prinzip ist aber wieder das Gleiche. Die neuen Blätter werden hinter das Blatt mit dem Befehl eingefügt. In das neue Blatt wird das gesamte ursprügliche Blatt kopiert. Die Zelle in der der Blätter-Befehl steht wird mit dem Ergebniswert des betreffenden Blattes überschrieben. Als Ergebnis haben wir ein neues Blatt mit dem zugehörigen Ergebiswert, das ansonsten exakt die selben Excel-Formeln hat wie das Ursprungsblatt.

=NL(“Blätter”;”Sachposten”;”Kostenträger Code”;”Buchungsdatum”;”1.12.2010..31.12.2010″)

Mit meiner Cronus Datenbank von Navision erstellt dieser Befehl vier Blätter. Das Erste hat den Namen “(2)”, das Zweite den Namen “MERCEDES”, usw. Die Namen der Blätter sind die Ergebniswerte aus den Datensätzen. Jet Reports hat das erste Blatt “(2)” genannt, da ein Excel-Blatt einen Namen haben muss und der erste Datensatz einen Leeren Text geliefert hat. Wenn wir uns die Formeln anschauen, dann steht auf dem ersten Blatt wieder der Befehl und auf den folgenden Blättern ist wieder nur der Wert eingefügt worden. Bei eingefügten Blättern findet man in der Zelle A1 den Text “+AutoBlatt”. Daran erkennt Jet Reports, dass das gesamte Blatt gelöscht werden muss, wenn man wieder in den Design-Modus zurückschaltet. Ich habe schon erwähnt, dass man in der Zeile 1 und der Spalte A nur Jet Reports Parameter eintragen sollte, oder?

Replikatoren verwenden

Die verschiedenen Replikatoren können mehrfach in einem Bericht verwendet werden. Sie können auch miteinader Kombiniert werden. Das folgende Beispiel kombiert alle drei “Achsen” in einer Auswertung.

Jet Report: Zeilen, Spalten und Blätter - Designmodus

Designmodus

Jet Report: Zeilen, Spalten und Blätter - Ausgeführter Bericht

Berichtsmodus

Das Ergebis ist ist ein Bericht, der für einen gewählten Zeitraum:

  • Ein Blatt für jeden gebuchten Kostenträger anlegt
  • Alle gebuchten Sachkonten in den Zeilen auflistet
  • Jedes verwendete Buchungsdatum in den Spalten auflistet
  • Und die Summe des Buchungsbetrags für jede Kombination aus Sachkonto, Buchungsdatum und Kostenträger berechnet.

Das ganze mit lediglich 4 simplen Excelbefehlen. Gut, oder?

Untersuchen Sie den Bericht gern selbst:

JetReports-Zeilen-Spalten-Blaetter.xls

Andreas Koblischke