Wenn Buchungen nicht über Belege aus einzelnen Teilbereichen von Dynamics NAV in die FiBu gebucht werden, werden Buchungsblätter verwendet.
In der Einrichtung der Buchungsblatt-Vorlagen können Buchungsblatt-Vorlagen für bestimmte wiederkehrende Buchungen auf Sachkonten erstellt werden. Die Buchungsblattvorlagen können auf zwei verschiedenen Wegen erreicht werden. Es besteht zum einen die Möglichkeit über die Verwaltung - Anwedung Einrichtung die Buchungsblattvorlagen zu öffnen.
Zusätzlich gibt es die Möglichkeit über Finanzmanagement-Verwaltung-Allgemein. Über diesen Weg werden die FiBu-Buchungsblattvorlagen erreicht, welche sich jedoch nicht von den Buchungsblattvorlagen unterscheiden. (Es liegt die gleiche Tabelle zurgrunde).
In der Übersicht kann eine Buchungsblattvorlage ausgewählt werden. Die Verschiedenen Vorlagen enthalten jeweils eindeutige Voreinstellungen. Beispielsweise sind bereits spezielle Nummernserien und Gegenkontoarten voreingestellt. Über die verknüpften Informationen können die Buch.-Blattnamen geöffnet werden.
In den FiBu Buchungsblattvorlagen können unter den einzelnen Vorlagen weitere Buchungsblattvorlagen unter dieser Gruppe mit den gleichen Voreinstellungen angelegt werden. Diese können mit einer Fortlaufenden Nummer im Namen versehen werden, die sich nach jeder Buchung in diesem Buchungsblatt automatisch erhöht. In den Fibu Buch.-Blattvorlagen wird über verknüpfte Informationen-Fibu Buch.-Blattnamen beispielsweise die Vorlage für das Zahlungseingangsbuchungsblatt aufgerufen.
Hier kann eine neue Vorlage erstellt werden, die mit einer fortlaufenden Nummer im Namen versehen werden kann. Beispielsweise BAR1 als neue Vorlage für Zahlungseingangsbuchungsblätter. Hierbei spielt es keine Rolle an welcher Stelle im Text die Nummer steht. Sobald eine Nummer im Namen vorhanden ist, erhält das Buchungsblatt bei jedem neuen Aufruf eine um einen Zähler erhöhte Nummer.
Wird also nun beispielsweise über die Startseite ein Zahl.-Eing.-Buch. Blatt aufgerufen und eine Buchung auf einen Debitor mit der neu anglegten Vorlage BAR1 durchgeführt, erscheint nach dem Buchen der Hinweis, dass die nächsten Buchungen in der Vorlage BAR2 stattfinden.
In Dynamic Nav gibt es wie in jeder Programmier-Sprache das sogenannte "Wenn Dann Sonst" Prinzip. Dieses wird dazu benötigt, eine Bedingung (Wenn) zu Prüfen und DANN entsprechende Anweisungen auszuführen. In folgendem Beispiel ist dieses Prinzip recht gut zu erkennen:
IF pullifarbe = weiß THEN //WENN der Pulli weiß ist DANN
wasche mit weißen sachen //wasche ihn mit den weißen Sachen
Wenn die im Beispiel verwendete Pullifarbe aber nun nicht Weiß wäre sondern Rot müsste man eine andere Anweisung geben. Dieses Ziel erreicht man mit dem SONST. In C/AL heißt dies ELSE. Es ist so anzuwenden:
IF pullifarbe = weiß THEN //Es wird geprüft ob der Pulli weiß ist.
wasche mit weißen sachen //Ist dies der Fall, wird diese Anweisung ausgeführt.
ELSE //Sollte dies nicht der Fall sein...
wasche mit Buntwäsche //...soll diese Anweisung ausgeführt werden.
Ist die Pullifarbe aber schwarz dann kann der Pulli weder zu der weißen Wäsche noch zu der Buntwäsche. Eine Lösung für dieses Problem bietet das IF ELSE (WENN DANN). Anzuwenden wäre es in diesem Beispiel so:
IF pullifarbe = weiß THEN //Es wird geprüft ob der Pulli weiß ist.
wasche mit weißen sachen //Ist dies der Fall, wird diese Anweisung ausgeführt.
ELSE //Wenn dies nicht der Fall ist...
IF pullifarbe = schwarz THEN //...soll noch mal geprüft werden ob der Pulli schwarz ist.
wasche mit schwarzen Sachen //Ist dies der Fall, wird diese Anweisung ausgeführt.
ELSE //Wenn dies nicht der Fall ist...
wasche mit Buntwäsche //... wird die Letzte Möglichkeit ausgeführt.
Dieser ELSE IF Vorgang ist beliebig weit erweiterbar. Es ist möglich unendlich viele Dinge zu überprüfen bevor ein bestimmter Vorgang ausgeführt werden soll.
Mit einem Zahlungseingang eines Debitors können über das Zahlungseingangsbuchungsblatt mehrere offene Posten eines Debitors teilweise ausgeglichen werden.
Hierzu wird im Zahlungseingangs Buchungsblatt nach Eingabe der Zahlungsdaten über die Funktionen Posten ausgleichen ausgewählt.
Es werden dann in der Tabelle Debitorenpostenausgleich alle offenen Posten (gesetzter Haken) zu diesem Debitor angezeigt. Alternativ dazu können die offenen Posten in der Debitorenkarte angezeigt werden. Da dort alle Posten aufgelistet sind erkennt man die offenen Posten an dem gesetzten Haken in der Spalte "Offen".
In der Spalte Ausgleichsbetrag kann man nun den gewünschten Ausgleichsbetrag eingeben. Unten rechts im Fenster wird der verfügbare Betrag angezeigt. Ist die Summe der Ausgleichsbeträge niedriger als der gebuchte Zahlungseingang, bleibt der Zahlungseingang in den Debitorenposten als offen markiert. Nach Bestätigung der OK Taste muss im Zahlungseingangsbuchungsblatt gebucht werden und die Posten werden entsprechend ausgeglichen.
In einem vorherigen Beispiel wurde die Anwendung von den Verzweigungsbefehlen IF-ELSE gezeigt, zusätzlich gibt es aber auch noch die CASE-ELSE Verzweigungsbefehle. Sie werden vorallem dann benutzt wenn man sehr viele Bedingungen prüfen möchte und dazu mehrere Aktionen ausführen will. Theoretisch wäre das mit IF-ELSE auch machbar, aber sehr unperformant. In diesem kurzen Beispiel wird die Funktionsweiße erläutert:
CASE kleidergröße OF //Für den fall das die Kleidergröße...
'S': //- S ist...
korb = S //...lege es in Korb S.
'M': //- M ist...
korb = M //...lege es in Korb M.
ELSE //- eine andere Größe ist...
korb = aussortiert //...lege es in den Korb zum aussortieren.
END; //Hier wird das CASE wieder geschlossen.
Im Beispiel ist "kleidergröße" eine Variable, die die verschiedenen Größen enthalten kann.
Man kann auch mehrere Dinge in einem angeben, bei dem immer die selbe Aktion folgen soll. Außerdem kann man mehrere Aktionen angeben mit BEGIN und END; innerhalb des Anweisungsblocks.
CASE kleidergröße OF //Für den Fall das die Kleidergröße...
'S': //- S ist...
BEGIN //Starte eine Reihe von Anweisungen und...
korb = S //... lege es in den Korb S und...
notiz = 'bügeln lassen' //... füge die Notiz hinzu das es gebügelt werden soll.
END; //Hier beendet man den Anweisungsblock.
'M': //- M ist...
korb = M //... lege es in den Korb M
'L','XL','XXL': //- L,XL oder XXL ist...
korb = L-XXL //... lege es in den Korb L-XXL
ELSE //- eine andere größe ist...
korb = aussortiert //... lege es in den Korb zum aussortieren.
END; //Hier wird das CASE wieder geschlossen.
Wenn ein CASE geöffnet wird muss man es am Ende mit einem "END;" schließen.