Category Archives: NF

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 Field – Anzeigen und Verwenden von Feldern eines aktuellen Jet Reports Datensatzes (Ab der Essentials Version verfügbar)

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

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