Monthly Archives: February 2013

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

Neue version Verfügbar: Jet Essentials 2012 R2 Build 12.5.13039.0

Es gibt eine neue Version von Jet Reports zum Download.

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.

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).

Für diese Version muss Ihr Update mindestens noch bis zum 13.2.2013 eingetragen sein.

Die Änderungen seit den letzten Versionen können Sie in der ChangeList nachlesen.

Bitte verwenden Sie für

– 32 Bit Office diese Installationsversion

– 64 Bit Office diese Installationsversion

Andreas Koblischke

Informationen und Tips zu Jet Reports

Sehr geehrter Leser,

die datenkultur GmbH hat sich seit dem Vertriebstart von Jet Reports in Deutschland auf das beliebte Reporting System spezialisiert. Wir haben schon mehr als 100 Versionen verkauft, wir haben hunderte Trainings gehalten, wir haben mehr als 1000 Clientinstallationen absolviert, wir haben noch viel mehr Berichte mit Jet Reports erstellt und wir lieben Jet Reports immer noch.

Dieser Blog soll Tips zum Erstellen von Jet Reports geben. Wir werden auch regelmäßig auf neue Versionen und neue Funktionen hinweisen. Es lohnt sich daher diesen Blog als RSS Feed zu abonieren.

Einsteigern in Jet Reports empfehlen wir eine Basis-Schulung zu Buchen. Die Tips in diesem Blog bauen auf Grundkenntnissen auf. Jet Reports ist prima, aber der Einstieg ohne Trainier ist nicht leicht. Natürlich bieten wir auch Schulungen für Jet Reports an.

Ich hoffe, dass Ihnen unser Blog die Arbeit mit Jet Reports erleichern wird.

Andreas Koblischke