Sie sind auf Seite 1von 6

Dynamisches Formular (Teil 2) Formulare

Dynamisches Formular (Teil 2) 10 Versionsinfo


Die Beschreibung wurde mit dem
Programm A DOBE L IVE C YCLE D ESIGNER ,
Wie kann ich in einem dynamischen Formular Be- das mit A DOBE A CROBAT P RO X
zusammen ausgeliefert wurde, erstellt.
rechnungen erstellen?
Hinweis
Im Kapitel Wie können in einem Formular dynamisch weitere Formular-
Das Programm A DOBE L IVE C YCLE
feldzeilen eingefügt werden?, das in Vol. 22 erschienen ist, wurde anhand D ESIGNER steht ausschließlich
eines Bestellscheins beschrieben, wie eine Anzahl von Zeilen durch den An- Windows-Anwendern zur Verfügung.
Seit A DOBE A CROBAT XI P RO ist das
wender dynamisch eingefügt werden kann. In diesem Kapitel wird das Beispiel Programm ADOBE L IVE C YCLE D ESIGNER
um die Berechnung des Gesamtpreises, der sich aus der angegebenen Menge nicht mehr enthalten. Sind Sie im
Besitz einer früheren A DOBE A CROBAT
und dem Einzelpreis errechnet, erweitert. Zusätzlich wird die Spalte Gesamt- P RO -Version und aktualisieren auf
preise automatisch aufaddiert und in das Feld Gesamtsumme eingetragen. Die A CROBAT XI P RO , können Sie kostenlos
auf die neueste Version des A DOBE
Berechnung erfolgt hierbei über die Skriptsprache FormCalc, die für Berech- L IVE C YCLE D ESIGNER upgraden.
nungen viele Funktionen zur Verfügung stellt. Weitergehende Infos dazu erhalten Sie
unter HTTP :// HELPX . ADOBE . COM /
In diesem Kapitel wird die grundsätzliche Lösung der Spalten- und Zeilen- DE / X - PRODUCTKB / POLICY - PRICING /
UPGRADE - LIVECYCLE - DESIGNER - ACROBAT - XI .
berechnung beschrieben. Diese wird nicht nur bei einem Bestellschein, son- HTML .

dern z. B. auch bei Dienstleistungsbestätigungen, Projektabrechnungen etc.


benötigt.
Hinweis
Im ersten Abschnitt wird die Bestellzeile in dem Beispielbestellschein um das
Im Programm A DOBE L IVE C YCLE
Feld Gesamtpreis erweitert. Der Gesamtpreis soll sich anschließend automa- D ESIGNER kann zwischen den
tisch aus der eingegebenen Menge und dem Einzelpreis berechnen. Skriptsprachen F ORM C ALC und
J AVA S CRIPT gewählt werden. F ORM C ALC
bietet bereits integrierte mathema-
1. Öffnen Sie das Beispieldokument MEV_VOL_23_Dynamische_Bestellzeile_
tische Funktionen an. Berechnungen
V1.pdf aus dem angegebenen Verzeichnis. können damit viel einfacher und
effektiver als mit JavaScript ausgeführt
2. Um ein weiteres Feld in der Bestellzeile einfügen zu können, muss zuerst werden. Die Skriptsprache F ORM C ALC ist
ausschließlich in dem Programm A DOBE
die Schaltfläche mit der Bezeichnung BESTELLZEILE_LOESCHEN verklei- L IVE C YCLE D ESIGNER integriert. Um die
nert werden. Vorteile der Skriptsprache F ORM C ALC zu
nutzen, muss das PDF-Formular auch
Formularfelder im Adobe LiveCycle Designer verkleinern mit diesem Programm erstellt werden.
Das mit A DOBE L IVE C YCLE D ESIGNER
3. Um das Formularfeld zu verkleinern, klicken Sie in der Designansicht in die erstellte PDF-Formular kann ebenfalls,
Schaltfläche und verkleinern sie, indem Sie den linken Größenanfasser nach wie herkömmliche PDF-Formulare, mit
dem kostenlosen A DOBE R EADER
rechts ziehen. ausgefüllt werden.

Das Objekt »Löschen« wird durch ziehen


am mittleren linken Anfasser nach rechts
verkleinert.

Übungsdatei
Das fertige Beispiel finden Sie im Paket
WWW . MEV - MEDIEN . DE / DATEIEN / PDF /
PDFAKTUELL 23. ZIP . Nach dem Entpacken
liegt die Datei mit dem Dateinamen
MEV_VOL_23_D YNAMISCHE _B ESTELLZEI -
4. Danach werden Formularfelder, die sich im Teilformular TEILFORMULAR_ LE . PDF im Verzeichnis A RBEITSDATEIEN /
F ORMULARE /D YNAMISCHES F ORMULAR 2.
BESTELLSCHEINKOPF mit der Bezeichnung BESTELLZEILE_ANZAHL_TEXT

PDF publizieren 1
Formulare Dynamisches Formular (Teil 2)

und BESTELLZEILE_PREIS_TEXT befinden, ebenfalls verkleinert und so posi-


tioniert, 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.

Neues Formularfeld in der Zeile einfügen


1. Um ein neues Formularfeld in das bestehende Formular einzufügen, ist der
Hinweis
schnellste Weg ein bestehendes Feld zu kopieren. Von Vorteil ist hierbei, das
Alternativ können Sie ein markiertes
Feld auch mit der Tastenkombination beim Kopieren eines Felds die Formatierung übernommen wird. Alternativ
S TRG + C kopieren und mit der können Sie auch ein neues Feld erstellen.
Tastenkombination S TRG + V einfügen.
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 Zwi-
schenablage ein.

Dem Formular wurde ein Textfeld für die 3. Positionieren Sie das neue Feld neben dem Textfeld mit dem Inhalt Preis
Spaltenbeschriftung und ein Eingabetext-
feld für den Gesamtpreis hinzugefügt.
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 Neues Feld für
letzten Bestellzeile positioniert wird, benötigt. Damit dieses dynamisch – also Gesamtsumme hinzufügen
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 Hinweis
Bestellzeile positioniert. Sollte ein Bedienfeld nicht angezeigt
werden, können Sie dieses über den
1. Wählen Sie aus dem Bedienfeld Objektbibliothek in der Kategorie Stan- Menübefehl F ENSTER ein- und
ausblenden.
dard das Objekt Dezimalfeld und ziehen Sie ein neues Rechteck in der Wird das Bedienfeld O BJEKTBIBLIOTHEK
gewünschten Größe unter dem zuvor erstellten Feld mit der Bezeichnung nicht angezeigt, können Sie es über
den Menübefehl F ENSTER ➞
BESTELLZEILE_GESAMTPREIS_EINGABE im Teilformular TEILFORMULAR_ O BJEKTBIBLIOTHEK einblenden.
NEUE_BESTELLZEILE auf.

2. Klicken Sie im Bedienfeld Hierarchie auf das eben erstellte Feld Dezimal- Für die Berechnung der Gesamtsumme
wird ein neues Feld im Teilformular
feld und tragen Sie als Bezeichnung GESAMTSUMME ein. »TEILFORMULAR_NEUE_BESTELLZEILE«
erstellt.
3. Wählen Sie im Bedienfeld Objekt die Option Anzeige aus dem Einblendme-
nü Muster 1 . Wechseln Sie im Dialogfenster Muster - Dezimalfeld in die
Registerkarte Anzeige und wählen Sie die Option 1.234,00 € 2 für die Forma-
tierung des Dezimalfelds aus.

PDF publizieren 3
Formulare Dynamisches Formular (Teil 2)

2 1

Im Dialogfenster »Muster - Dezimalfeld«


wird das Format ausgewählt, in dem der
Gesamtpreis angezeigt werden soll.
4 M
4. Markieren
ki Sie
Si danach
d h die
di Felder
F ld BESTELLZEILE_PREIS_EINGABE,
BESTELLZEILE PRE BE-
STELLZEILE_GESAMTPREIS und GESAMTSUMME im Bedienfeld Hierarchie,
indem Sie die Felder mit gedrückter STRG-Taste anklicken. Wählen Sie im
Die horizontale Ausrichtung der Felder wird
über das Bedienfeld »Absatz« auf
Bedienfeld Absatz die Option Rechtsbündig 3 , damit die Währungswerte
»Rechtsbündig« gestellt. 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 Multiplika-
tion 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 Aus-


lö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 3 die Option Client.

3. Im Eingabefeld des Skript-Editors 4 tragen Sie folgenden Skriptbefehl


ein:

1 2
3

Skriptbefehl
BESTELLZEILE_GESAMTPREIS_EINGABE = BESTELLZEILE_ANZAHL_EINGABE * BESTELLZEILE_PREIS_EINGABE

4. Wenn Sie anschließend den Javascript-Editor verlassen, wird eine Mel- Im Skript-Editor wird der Auslöser, der das
Skript ausführt, die Skript-Sprache, in
dung angezeigt, die Ihnen mitteilt, dass das Feld BESTELLZEILE_GESAMT- unserem Beispiel »FormCalc«, und wo das
PREIS_EINGABE das Attribut schreibgeschützt erhält, um ein Überschreiben Skript ausgeführt werden soll sowie der
Skript-Code eingegeben.
durch den Anwender zu vermeiden. Dadurch wird eine Manipulation durch
den Anwender verhindert.

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 Aus-


lö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 3 die Option Client.

3. Im Eingabefeld des Skript-Editors 4 tragen Sie folgenden Scriptbefehl


ein:

PDF publizieren 5
Formulare Dynamisches Formular (Teil 2)

1 2
3

4
Skriptbefehl
Sum(TEILFORMULAR_BESTELLZEILE[*].BESTELLZEILE_GESAMTPREIS_EINGABE)

Im Skript-Editor wird das Berechungsskript 4. Gegenüber JavaScript bietet FormCalc viele Funktionen standardmäßig
eingegeben.
an, mit denen Berechnungen durchgeführt werden können. Für dieses Beispiel
wurde die Funktion Sum verwendet.

5. Wenn Sie auf den Schalter fn 5 in der


5 Funktionsleiste klicken, können Sie sich die
integrierten Funktionen 6 anzeigen lassen
6
bzw. auswählen.

Über den Schalter »fn« werden die in 6. Speichern Sie anschließend das PDF-
»FormCalc« enthaltenen Funktionen
angezeigt.
Formular unter dem Dateinamen MEV_
VOL_23_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 ver-
lässt, der Gesamtpreis innerhalb der aktuellen Zeile berechnet und im Feld
Gesamtpreis 9 ausgegeben. Die Summe der einzelnen eingegebenen Gesamt-
preise wird im Feld Gesamtsumme 10 berechnet.

Das fertige PDF-Formular mit der


Rechenfunktion in der Spalte »Gesamt-
preis« und und der Zeile »Gesamtsumme«.

7 8 9

Übungsdatei
Das fertige Beispiel finden Sie im Paket
HWWW . MEV - MEDIEN . DE / DATEIEN / PDF /
PDFAKTUELL 23. ZIP . Nach dem Entpacken 10
liegt die Datei mit dem Dateinamen
MEV_VOL_23_D YNAMISCHE _B ESTELLZEI -
LE . PDF im Verzeichnis A RBEITSDATEIEN / Die fertige PDF-Datei finden Sie nach dem Download unter der Bezeichnung
F ORMULARE /D YNAMISCHES F ORMULAR 2.
MEV_VOL_23_Dynamische_Bestellzeile_V2.pdf im angegebenen Ordner.

6 PDF publizieren