Dynamisches Formular (Teil 2) Formulare Dynamisches Formular (Teil 2) Wie kann ich in einem dynamischen Formular Berechnungen erstellen? Im Kapitel Wie können in einem Formular dynamisch weitere Formularfeldzeilen eingefügt werden?, das in Vol. 22 erschienen ist, wurde anhand eines Bestellscheins beschrieben, wie eine Anzahl von Zeilen durch den Anwender dynamisch eingefügt werden kann. In diesem Kapitel wird das Beispiel um die Berechnung des Gesamtpreises, der sich aus der angegebenen Menge und dem Einzelpreis errechnet, erweitert. Zusätzlich wird die Spalte Gesamtpreise automatisch aufaddiert und in das Feld Gesamtsumme eingetragen. Die Berechnung erfolgt hierbei über die Skriptsprache FormCalc, die für Berechnungen viele Funktionen zur Verfügung stellt. In diesem Kapitel wird die grundsätzliche Lösung der Spalten- und Zeilenberechnung beschrieben. Diese wird nicht nur bei einem Bestellschein, sondern z. B. auch bei Dienstleistungsbestätigungen, Projektabrechnungen etc. benötigt. Im ersten Abschnitt wird die Bestellzeile in dem Beispielbestellschein um das Feld Gesamtpreis erweitert. Der Gesamtpreis soll sich anschließend automatisch aus der eingegebenen Menge und dem Einzelpreis berechnen. 1. Öffnen Sie das Beispieldokument MEV_VOL_2_Dynamische_Bestellzeile_ V1.pdf aus dem angegebenen Verzeichnis. 2. Um ein weiteres Feld in der Bestellzeile einfügen zu können, muss zuerst die Schaltfläche mit der Bezeichnung BESTELLZEILE_LOESCHEN verkleinert werden. Formularfelder im Adobe LiveCycle Designer verkleinern. Um das Formularfeld zu verkleinern, klicken Sie in der Designansicht in die Schaltfläche und verkleinern sie, indem Sie den linken Größenanfasser nach rechts ziehen. 10 Versionsinfo Die Beschreibung wurde mit dem Programm ADOBE LIVECYCLE DESIGNER, das mit ADOBE ACROBAT PRO X zusammen ausgeliefert wurde, erstellt. Das Programm ADOBE LIVECYCLE DESIGNER steht ausschließlich Windows-Anwendern zur Verfügung. Seit ADOBE ACROBAT XI PRO ist das Programm ADOBE LIVECYCLE DESIGNER nicht mehr enthalten. Sind Sie im Besitz einer früheren ADOBE ACROBAT PRO-Version und aktualisieren auf ACROBAT XI PRO, können Sie kostenlos auf die neueste Version des ADOBE LIVECYCLE DESIGNER upgraden. Weitergehende Infos dazu erhalten Sie unter HTTP://HELPX.ADOBE.COM/ DE/X-PRODUCTKB/POLICY-PRICING/ UPGRADE-LIVECYCLE-DESIGNER-ACROBAT-XI. HTML. Im Programm ADOBE LIVECYCLE DESIGNER kann zwischen den Skriptsprachen FORMCALC und JAVASCRIPT gewählt werden. FORMCALC bietet bereits integrierte mathematische Funktionen an. Berechnungen können damit viel einfacher und effektiver als mit JavaScript ausgeführt werden. Die Skriptsprache FORMCALC ist ausschließlich in dem Programm ADOBE LIVECYCLE DESIGNER integriert. Um die Vorteile der Skriptsprache FORMCALC zu nutzen, muss das PDF-Formular auch mit diesem Programm erstellt werden. Das mit ADOBE LIVECYCLE DESIGNER erstellte PDF-Formular kann ebenfalls, wie herkömmliche PDF-Formulare, mit dem kostenlosen ADOBE READER ausgefüllt werden. Das Objekt»Löschen«wird durch ziehen am mittleren linken Anfasser nach rechts verkleinert. Übungsdatei 4. Danach werden Formularfelder, die sich im Teilformular TEILFORMULAR_ BESTELLSCHEINKOPF mit der Bezeichnung BESTELLZEILE_ANZAHL_TEXT Das fertige Beispiel finden Sie im Paket WWW.MEV-MEDIEN.DE/DATEIEN/PDF/ PDFAKTUELL2.ZIP. Nach dem Entpacken liegt die Datei mit dem Dateinamen MEV_VOL_2_DYNAMISCHE_BESTELLZEI- LE.PDF im Verzeichnis ARBEITSDATEIEN/ FORMULARE/DYNAMISCHES FORMULAR2. PDF publizieren 1
Formulare Dynamisches Formular (Teil 2) und BESTELLZEILE_PREIS_TEXT befinden, ebenfalls verkleinert und so positioniert, dass nach dem Feld BESTELLZEILE_PREIS_TEXT ein Feld eingefügt werden kann. Damit noch ein weiteres Formularfeld in das Teilformular»TEILFORMULAR_BESTELL- SCHEINKOPF«eingefügt werden kann, werden die bereits vorhandenen Formularfelder verkleinert. 5. Verkleinern Sie auch die Felder im Teilformular TEILFORMULAR_BE- STELLZEILE und verschieben Sie diejenigen unterhalb der Textfelder, die die Bezeichnungen enthalten. Alternativ können Sie ein markiertes Feld auch mit der Tastenkombination STRG + C kopieren und mit der Tastenkombination STRG + V einfügen. Neues Formularfeld in der Zeile einfügen 1. Um ein neues Formularfeld in das bestehende Formular einzufügen, ist der schnellste Weg ein bestehendes Feld zu kopieren. Von Vorteil ist hierbei, das beim Kopieren eines Felds die Formatierung übernommen wird. Alternativ können Sie auch ein neues Feld erstellen. 2. Um ein bereits vorhandenes Feld zu kopieren, klicken Sie in das Textfeld im Teilformular TEILFORMULAR_BESTELLSCHEINKOPF und wählen Sie über das Kontextmenü den Befehl Kopieren. Anschließend fügen Sie es aus der Zwischenablage ein. Dem Formular wurde ein Textfeld für die Spaltenbeschriftung und ein Eingabetextfeld für den Gesamtpreis hinzugefügt.. Positionieren Sie das neue Feld neben dem Textfeld mit dem Inhalt Preis und tragen Sie für das Formularfeld den Text Gesamtpreis ein. Im Bedienfeld Hierarchie ändern Sie die Feldbezeichnung um in BESTELLZEILE_GESAMT- PREIS_EINGABE. 2 PDF publizieren
Dynamisches Formular (Teil 2) Formulare 4. Wiederholen Sie die Schritte 1 bis 4. Kopieren Sie das Eingabefeld BESTELLZEILE_PREIS_EINGABE vom Teilformular TEILFORMULAR_BE- STELLZEILE. Positionieren Sie das Feld neben dem Feld BESTELLZEILE_ PREIS_EINGABE. Ändern Sie im Bedienfeld Hierarchie die Bezeichnung um in BESTELLZEILE_GESAMTPREIS_EINGABE. Der einfachste Weg, die Feldbezeichnung eines Formularfelds zu ändern, führt über das Bedienfeld»Hierarchie«. Wie erstelle ich ein dynamisch positioniertes Feld für die Berechnung der Gesamtsumme? Um die Spalte Gesamtpreis aufzuaddieren, wird ein Feld, das unterhalb der letzten Bestellzeile positioniert wird, benötigt. Damit dieses dynamisch also immer in Abhängigkeit von der Bestellzeilenanzahl positioniert werden kann, wird es innerhalb des Teilformulars TEILFORMULAR_GESAMTPREIS_EINGA- BE hinzugefügt. Dynamisch wird dieses Teilformular immer unter der letzten Bestellzeile positioniert. 1. Wählen Sie aus dem Bedienfeld Objektbibliothek in der Kategorie Standard das Objekt Dezimalfeld und ziehen Sie ein neues Rechteck in der gewünschten Größe unter dem zuvor erstellten Feld mit der Bezeichnung BESTELLZEILE_GESAMTPREIS_EINGABE im Teilformular TEILFORMULAR_ NEUE_BESTELLZEILE auf. Neues Feld für Gesamtsumme hinzufügen Sollte ein Bedienfeld nicht angezeigt werden, können Sie dieses über den Menübefehl FENSTER ein- und ausblenden. Wird das Bedienfeld OBJEKTBIBLIOTHEK nicht angezeigt, können Sie es über den Menübefehl FENSTER OBJEKTBIBLIOTHEK einblenden. 2. Klicken Sie im Bedienfeld Hierarchie auf das eben erstellte Feld Dezimalfeld und tragen Sie als Bezeichnung GESAMTSUMME ein.. Wählen Sie im Bedienfeld Objekt die Option Anzeige aus dem Einblendmenü Muster 1. Wechseln Sie im Dialogfenster Muster - Dezimalfeld in die Registerkarte Anzeige und wählen Sie die Option 1.24,00 2 für die Formatierung des Dezimalfelds aus. Für die Berechnung der Gesamtsumme wird ein neues Feld im Teilformular»TEILFORMULAR_NEUE_BESTELLZEILE«erstellt. PDF publizieren
Formulare Dynamisches Formular (Teil 2) 2 1 Im Dialogfenster»Muster - Dezimalfeld«wird das Format ausgewählt, in dem der Gesamtpreis angezeigt werden soll. Die horizontale Ausrichtung der Felder wird über das Bedienfeld»Absatz«auf»Rechtsbündig«gestellt. 4. Markieren Sie danach die Felder BESTELLZEILE_PREIS_EINGABE, BE- STELLZEILE_GESAMTPREIS und GESAMTSUMME im Bedienfeld Hierarchie, indem Sie die Felder mit gedrückter STRG-Taste anklicken. Wählen Sie im Bedienfeld Absatz die Option Rechtsbündig, damit die Währungswerte rechtsbündig im Feldtyp Dezimalfeld angezeigt werden. Wie kann ich den Gesamtpreis in der Bestellzeile errechnen lassen? Um den Gesamtpreis zu berechnen, wird ein Skript erstellt, das die Multiplikation der Felder BESTELLZEILE_ANZAHL_EINGABE und BESTELLZEILE_ PREIS_EINGABE ausführt. Das Ergebnis wird in das Feld BESTELLZEILE_ PREIS_GESAMT eingetragen. 1. Um ein Skript einzugeben, öffnen Sie das Bedienfeld Skript-Editor über den Menübefehl Fenster Skript-Editor. 4 PDF publizieren
Dynamisches Formular (Teil 2) Formulare 2. Wählen Sie im Skript-Editor über das Einblendmenü Anzeigen 1 als Auslöser für das Skript die Option calculate, über das Einblendmenü Sprache 2 wählen Sie die Option FormCalc und über das Einblendmenü bei Ausführen am die Option Client.. Im Eingabefeld des Skript-Editors 4 tragen Sie folgenden Skriptbefehl ein: 1 2 4 Skriptbefehl BESTELLZEILE_GESAMTPREIS_EINGABE = BESTELLZEILE_ANZAHL_EINGABE * BESTELLZEILE_PREIS_EINGABE 4. Wenn Sie anschließend den Javascript-Editor verlassen, wird eine Meldung angezeigt, die Ihnen mitteilt, dass das Feld BESTELLZEILE_GESAMT- PREIS_EINGABE das Attribut schreibgeschützt erhält, um ein Überschreiben durch den Anwender zu vermeiden. Dadurch wird eine Manipulation durch den Anwender verhindert. Im Skript-Editor wird der Auslöser, der das Skript ausführt, die Skript-Sprache, in unserem Beispiel»FormCalc«, und wo das Skript ausgeführt werden soll sowie der Skript-Code eingegeben. Die Anzahl der Bestellzeilen ist dynamisch und wird durch den Anwender erst beim Ausfüllen bestimmt. Hier ist die»sum«- Funktion von»formcalc«ein großer Vorteil, um die Gesamtsumme zu errechnen. Wie kann ich die Gesamtsumme dynamisch berechnen lassen? 1. Um die Gesamtsumme dynamisch berechnen lassen zu können, klicken Sie in das Feld mit der Bezeichnung GESAMTSUMME in der Designansicht bzw. im Bedienfeld Hierarchie innerhalb des Teilformulars TEILFORMULAR_ NEUE_BESTELLZEILE. 2. Wählen Sie im Skript-Editor über das Einblendmenü Anzeigen 1 als Auslöser für das Skript die Option calculate, über das Einblendmenü Sprache 2 wählen Sie die Option FormCalc und über das Einblendmenü bei Ausführen am die Option Client.. Im Eingabefeld des Skript-Editors 4 tragen Sie folgenden Scriptbefehl ein: PDF publizieren 5
Formulare Dynamisches Formular (Teil 2) 1 2 4 Skriptbefehl Sum(TEILFORMULAR_BESTELLZEILE[*].BESTELLZEILE_GESAMTPREIS_EINGABE) Im Skript-Editor wird das Berechungsskript eingegeben. 4. Gegenüber JavaScript bietet FormCalc viele Funktionen standardmäßig an, mit denen Berechnungen durchgeführt werden können. Für dieses Beispiel wurde die Funktion Sum verwendet. Über den Schalter»fn«werden die in»formcalc«enthaltenen Funktionen angezeigt. 5 6 5. Wenn Sie auf den Schalter fn 5 in der Funktionsleiste klicken, können Sie sich die integrierten Funktionen 6 anzeigen lassen bzw. auswählen. 6. Speichern Sie anschließend das PDF- Formular unter dem Dateinamen MEV_ VOL_2_Dynamische_Bestellzeile_V2.pdf ab. 7. Wechseln Sie in die PDF-Vorschau, um die Funktion des PDF-Formulars zu testen. In der PDF-Vorschau können Sie die eingegebenen Skriptbefehle testen. Bei diesem Beispiel wird, sobald der Anwender eine Angabe in das Feld Anzahl 7 oder Preis 8 einträgt und das Formularfeld z. B. über die Tabulatortaste verlässt, der Gesamtpreis innerhalb der aktuellen Zeile berechnet und im Feld Gesamtpreis 9 ausgegeben. Die Summe der einzelnen eingegebenen Gesamtpreise wird im Feld Gesamtsumme 10 berechnet. Das fertige PDF-Formular mit der Rechenfunktion in der Spalte»Gesamtpreis«und und der Zeile»Gesamtsumme«. 7 8 9 Übungsdatei Das fertige Beispiel finden Sie im Paket HWWW.MEV-MEDIEN.DE/DATEIEN/PDF/ PDFAKTUELL2.ZIP. Nach dem Entpacken liegt die Datei mit dem Dateinamen MEV_VOL_2_DYNAMISCHE_BESTELLZEI- LE.PDF im Verzeichnis ARBEITSDATEIEN/ FORMULARE/DYNAMISCHES FORMULAR2. Die fertige PDF-Datei finden Sie nach dem Download unter der Bezeichnung MEV_VOL_2_Dynamische_Bestellzeile_V2.pdf im angegebenen Ordner. 10 6 PDF publizieren