Dossiers >> PDF und Acrobat >> Fachartikel >> PDF-Formulare mit FormCalc
Artikel als PDF

PDF-Formulare mit FormCalc

Der Adobe LiveCycle Designer ES unterstützt für PDF-Formulare zwei Skriptsprachen.FormCalc ist der ideale Einstieg für Berechnungen in PDF-Formularen. Die Funktionalität orientiert sich dabei an gebräuchlicher Tabellenkalkulationssoftware.

Andreas Burkard Berechnungen in HTML-Formularen sind knifflig und hängen stark vom Browser ab. Wie schon in der Ausgabe 2-09 berichtet, sind PDF-Formulare dank dem fest verankerten universalen Client, dem kostenlosen Adobe Reader, zunehmend beliebt. Wer sich nun in der PDF-Formularerstellung für den LiveCycle Designer ES entschieden hat, kommt rasch mit Berechnungen in Kontakt. An dieser Stelle sei nochmals darauf hingewiesen, dass der LiveCycle Desiger ES nur unter dem Windows-Betriebsystem in Acrobat 9 Pro und Acrobat 9 Pro Extended enthalten ist.

Zwei Scriptsprachen

LiveCycle Designer ES (Enterprise Suite) unterstützt mit JavaScript und FormCalc zwei Scriptsprachen. JavaScript ist eine leistungsfähige Scriptsprache, die viel Flexibilität bei der Erstellung von Scripten bietet. Komplexe Formularprojekte benötigen zwingend gute Kenntnisse in dieser Sprache. Für Agenturen ist es daher vorteilhaft, in diesem Bereich mit JavaScript-Programmieren zusammenzuarbeiten.

Mit FormCalc leichter zum Ziel

Anders ist es, wenn Sie mit FormCalc arbeiten. FormCalc ist eine unkomplizierte, einfach anzuwendende Berechnungssprache, deren Funktionalität sich an gebräuchlicher Tabellenkalkulationssoftware orientiert. Diese Scriptsprache enthält eine Vielzahl integrierter Funktionen. Mit deren Hilfe können Sie berechnende Formularentwürfe wesentlich leichter erstellen als mit JavaScript. Kennen Sie die Berechnungsvorgänge aus Microsoft Excel, können Sie mit FormCalc auch sofort loslegen. Ferner sind auf der Adobe-Website viele Hilfen hinterlegt. Geben Sie dazu einfach in das Suchfeld den Begriff FormCalc ein. Unter anderem finden Sie dort die unentbehrliche 118-seitige FormCalc-Benutzerreferenz.

Berechnungsformular inklusive MWSt

Im Folgenden geht es darum, ein Berechnungsformular in FormCalc zu erstellen. Das Formular addiert in einem Feld die Werteingaben von Artikeln. Das Gesamttotal wird zu guter Letzt mit der Mehrwertsteuer in ein neues Feld übertragen.

Felder platzieren

Abbildung 1: In diesem Beispiel wurde zuerst ein Feld mit der Bezeichnung Text aus der Bibliothek Standard im Dokument platziert. Solche Felder benötigen Sie für eine gewöhnliche Texteingabe. In der Palette Layout können feste Breiten und Höhen eingegeben werden. Verwenden Sie anschliessend aus dem Menü Bearbeiten > Mehrere Kopieren. Geben Sie für die vertikale Verschiebung 6 Exemplare ein und klicken Sie auf die Option unterhalb. Optional können Sie entscheiden, ob die Felder nahtlos untereinander platziert werden sollen (berührend) oder ob ein Abstand zwischen den Feldern eingefügt werden soll. Verwenden Sie für die horizontale Verschiebung vorerst die Option keine Verschiebung.

Wählen Sie das zweitunterste Textfeld aus und ändern Sie in der Palette Objekt den Typ auf Dezimalfeld. Die Objektpalette wird nun um drei Register erweitert. Geben Sie im Register Feld > Beschriftung den Text MWSt ein. Klicken Sie auf das Register Wert und geben Sie im Feld Standardwert 7.6 ein. Ändern Sie die Texte der übrigen Textfelder gemäss der Abbildung.

Aktivieren Sie nun alle sieben Felder und duplizieren Sie diese nach rechts (Menü Bearbeiten > Mehrere Kopieren). Löschen Sie das zweitunterste Feld. Ändern Sie alle Felder in der rechten Spalte auf den Typ Dezimalfeld und geben Sie jeweils in der Objektpalette CHF als Beschriftungstext ein.

Felder umbenennen

Abbildung 2: Für Scripts, und seien diese noch so einfach, gilt immer die gleiche Regel: Machen Sie klare Bezeichnungen und verwenden Sie keine Umlaute, Leerzeichen oder Interpunktionszeichen.

Um im LiveCycle Designer Felder umzubenennen, öffnen Sie die Palette Hierarchie. Aktivieren Sie zuerst im Dokument das Dezimalfeld mit der Ziffer 1 (das Aktivieren der Felder geht auch direkt über die Palette Hierarchie). Klicken Sie nun in der Palette Hierarchie mit der rechten Maustaste auf das Dezimalfeld und wählen Sie Feld umbenennen. Benennen Sie das Dezimalfeld Artikel 1 und wiederholen Sie den Vorgang für alle übrigen Felder gemäss Abbildung 1 und 2.

Let’s calculate …

Abbildung 3: Aktivieren Sie das neu bezeichnete Dezimalfeld T_ohne. Die­ses Feld wird die Artikel addieren. Öffnen Sie danach den Script-Editor, die Programmierzentrale des LC Designer (Menü Fenster > Script-Editor).

Legen Sie die Programmiersprache als FormCalc fest, und wählen Sie dann die Aktion Calculate aus. Jetzt kann es losgehen: Setzen Sie den Cursor in das Scriptfeld und schreiben Sie das abgebildete FormCalc-Script Artikel1+Artikel2 etc. hinein. Achten Sie auf eine mit den Feldnamen übereinstimmende Schreibweise.

Abbildung 4: Um nun die Summe mit dem Mehrwertsteuersatz zu verbinden, müssen Sie das Dezimalfeld T_mit auswählen. Achten Sie darauf, dass wiederum die Sprache FormCalc und die Aktion Calculate ausgewählt sind. Geben Sie dann das FormCalc-Script T_ohne+T_ohne*mwst/100 ein. Dies bedeutet, dass das Total ohne Mehrwertsteuer mit 7,6 multipliziert und danach durch 100 geteilt wird.

Speichern Sie dann das Designer-Dokument. Öffnen Sie die PDF-Datei in Acrobat und prüfen Sie das Resultat.

Wertvolle Tage

Trotz dieser beschriebenen Einfachheit ist FormCalc eine durchaus mächtige Sprache. Neben den üblichen Rechenfunktionen gibt es des Weiteren Datums-, Zeichenketten- (String-) und zahlentheoretische oder arithmetische Funktionen.

Im folgenden Scriptbeispiel werden Datumsfelder zu Werten umgeformt, wodurch beispielsweise Absenztage ausgerechnet werden können.

Abbildung 5 und 6: Ziehen Sie aus der Bibliothek ein Feld mit der Bezeichnung Datum-Uhrzeit-Feld. Duplizieren Sie dieses Feld zweimal nach rechts. Aktivieren Sie nur das letzte Feld und ändern Sie in der Objektpalette den Typ auf Nummerisches Feld.

Achten Sie darauf, dass wiederum FormCalc als Scriptsprache ausgewählt ist und im Feld Anzeigen > Calculate als Aktion festgelegt wurde. Das Script lautet IsoDate2Num(Datum1)-IsoDate2Num(Datum2)-(1).

Die Scriptfunktion IsoDate2Num wandelt das Datum in mathematische Werte um. Datum1 und Datum2 stehen für die Bezeichnungen der Datums-Uhrzeit-Felder. Auch hier ist es sinnvoll, die Bezeichnung zuerst anzupassen. Die Zahl -1 am Schluss des Scripts ist nötig, um den ersten Datumswert abzuziehen.

Fazit

Mit FormCalc hat Adobe im LiveCycle Designer ES eine gute Alternative zum komplexen JavaScript geschaffen. Erfreulich ist auch, dass in einem Formular mit beiden Scriptsprachen gemischt gearbeitet werden kann. Dennoch sollte dieser Bonus nicht über etliche Mankos des LC Desinger hinwegtäuschen. So ist beispielsweise das Auswählen und Verschieben von Feldern umständlich. Bei der Definition von Teilformularen verschieben sich aufwendige Feldformatierungen sehr eigenwillig. Ferner ist die gesamte Benutzerführung für gestandene Crea­tive-Suite-Anwender gewöhnungsbedürftig. Will Adobe der PDF-Formulartechnologie und damit auch ihren wertschöpferisch interessanten LiveCycle-Produkten zum grossräumigen Erfolg verhelfen,müssen die Weiterentwicklung, die Fehlerausmerzung und die Mac-Anpassung des LC Designer Vorrang haben. Nur so kann das Programm die Herzen der breiten Anwenderschaft erobern.

Der Autor

AndreasBurkardbefasst sich seit vielen Jahren mit PDF-Lösungen und Formularprojekten auf Basis von Acrobat und LiveCycle Designer. Er bietet individuelle Trainings und Beratung rund um das Thema PDF an.

www.BurkardPublishing.ch

Artikel als PDF