Adobe Acrobat: Runden in PDF-Formularen

In einem früheren Blog-Beitrag hat Andreas Burkard aufgezeigt, wie man ein Berechnungsformular mit der nötigen Feldlogik für eine Mehrwertsteuerberechnung aufbauen kann. In seinem neuen Beitrag zeigt er, wie Sie Rundungen in PDF-Formularen vornehmen können, falls Sie mit Dezimalbeträgen arbeiten.

Autor Andreas Burkard
Datum 07.10.2014
Lesezeit 3 Minuten

In einem früheren Blog-Beitrag habe ich aufgezeigt, wie man ein Berechnungsformular mit der nötigen Feldlogik für eine Mehrwertsteuerberechnung aufbauen kann. Weisen die fixen Beträge keine Dezimalbeträge auf, so hat man mit dem momentanen schweizerischen Mehrwertsteuersatz von 8 Prozent kaum Probleme mit Rundungen. Doch das Problem der Rundungen drängt sich früher, oder halt ein bisschen später, garantiert auf.

Klare Feldbezeichnungen

Ein mit JavaScript erweitertes PDF-Formular sollte stets über klare Feldbezeichnungen verfügen. Vermeiden Sie in den Feldnamen lange Namen, Wortzwischenräume und Umlaute.

PDF-Formulare können dann mit der leistungsfähigen Programmiersprache JavaScript erweitert werden. JavaScript ist eine objektorientierte Skript-Sprache und erlaubt die dynamische Veränderung von Inhalten und Interaktion.

Rundungen_Bild_02
Möchte man gerundete Zahlen im Bruttobetrag erhalten, muss mit JavaScript nachgeholfen werden. Es muss dabei Klarheit über Feldbezeichnungen herrschen. Die von JavaScript betroffenen Felder lauten in diesem Beispiel Netto, MwSt und Brutto.

Runden ist nicht gleich Runden

Bevor wir uns mir dem Rundungsskipt befassen, müssen wir uns kurz mit der Rundungsart auseinandersetzen. Hier unterscheidet man hauptsächlich zwischen den mathematischen Rundungen und dem kaufmännischen Runden.

Vereinfacht ausgedrückt rundet das kaufmännische Runden die 1 und 2 auf Null ab, die 3 und 4 auf 5 auf, wiederum die 6 und 7 auf 5 ab und letztlich die 8 und 9 an der ersten wegfallenden Dezimalstelle auf. Das kaufmännische Runden ist für Rundungsdifferenzen bei Währungsbeträgen die ideale Wahl.

Das Skript zur Rundung

Um Rundungsdifferenzen zu beheben, kommt beim Textfeld Brutto ein benutzerdefiniertes Berechnungsskript zum Einsatz. Dazu klickt man auf Bearbeiten und kann im JavaScript-Editor das abgebildete Script eingeben.

Rundungen_Bild_03b
Berechnung des Textfelds Brutto mit Eingabe des benutzerdefinierten Berechnungsskripts.

Im ersten Teil des Skripts wird die kaufmännische Rundung angesprochen. Die Bezeichnung var meint Variable. Eine Variable kann einen Wert aufnehmen.

Rundungen_Bild_04b
Im benutzerdefinierten Berechnungsskript kann man die Rundungsberechnung erstellen. Die Bezeichnungen innerhalb des Skripts sind den jeweiligen Feldbezeichnungen eines PDF-Formulars anzupassen.

Im mittleren Teil des Skripts wird eine Übersetzung der Feldbezeichnungen vorgenommen. Das kleine f vor den Feldbezeichnungen steht für New Function, das Ansprechen von Erweiterungen der Script-Sprache. Der Teil this.getField bezeichnet erst das aktuelle PDF-Dokument und gibt anschliessend einen Verweis auf ein Formularfeld, das in Klammer steht, zurück. Das Skript endet mit der Addierung der Felder Netto und MwSt.

In JavaScript wird oft die geschweifte Klammer verwendet (Akkolade). Diese Syntax hält Befehle zusammen. Auf dem MacOS öffnet man eine geschweifte Klammer mit Alt-8, Alt-9 schliesst die Klammer. Die Windows-Tastatur beinhaltet die geschweifte Klammer bereits. Diese Zeichen können mit zusätzlich gedrückter AltGR-Taste angesprochen werden.

Ferner ist der Gross- und Kleinschreibung in der Script-Sprache grosse Bedeutung beizumessen.

Rundungen_Bild_06
Die kaufmännische Rundung gewährleistet, dass der 5-Rappen-Betrag als kleinste Währungseinheit in Erscheinung tritt.

Über den Autor

Andreas Burkard

Andreas Burkard (Burkard Publishing GmbH) ist als Grafik-Designer in der Mediengestaltung und -produktion tätig. Er erstellt für Verlage und diverse Kundenprojekte professionelle InDesign-Vorlagen.