Scripting Events/Ereignisse

Aus SAP-Wiki
Zur Navigation springenZur Suche springen


Siehe JavaScript und FormCalc Scripting im LiveCycle Designer.

Der Script-Code wird in Abhängigkeit von einem Objekt (Formular, Teilformular, Schaltfläche, Textfeld) an ein Ereignis gebunden. Man spricht dann vom "Ereignis-Scripting-Code" oder vom "Ereignis-Code" oder etwas unsauber vom "Ereignis" (etwas problematische Begriffsvermischung zwischen dem auslösenden Ereignis und dem ausgelösten Code beim Ereignis). In Abhängigkeit vom Objekttyp werden verschiedene Ereignisse angeboten.

Ein sehr hilfreiche kompakte Übersicht bietet das Buch von Ulrich Bähr "Adobe LiveCycle® Designer ES2 und SAP Interactive Forms: Scripting für Nicht-Programmierer", S. 56ff..

Grundlagen

Im Adobe LiveCycle Designer klickt man auf das Objekt, an dem das Coding eingefügt werden soll und wählt in der Dropbox bei "Anzeigen:" das gewünschte Ereignis/Event.

An ein Objekt vom Typ "Text" kann kein Code verbunden werden.

Für jeden Code zu einem Event muss man sich bei der Scriptingsprache zwischen FormCalc und JavaScript entscheiden.

ScriptingEvent5.jpg

Wichtige Ereignisse

Formular Anzeigeereignisse

Zeit Ereignis Beschreibung
1 initialize XML-Daten sind gefüllt; Sehr häufig gebrauchte Ereignis; beim Öffnen des Formulars; Objekte auf Inhaltsseiten und Masterseiten ansprechbar; Seite ist noch nicht gerendert. Seitenangaben können also nicht abgefragt werden.
2 form:ready Beim Öffnen des Formulars; XML-Daten sind gefüllt; Standard-Ereignis beim Öffnen; nur Daten auf Inhaltsseite, nicht auf Masterseiten
3 layout:Ready Nach Abschluß Layout-Berechnung (auch mehrfach, wenn Neuberechnung); Zugriff auf Seitenangaben und Y-Koordinaten Objekte
3 docReady Beim Öffnen des Formulars; XML-Daten sind nicht gefüllt; nur 1 x ausgeführt; Formular ist sichtbar im Acrobat Reader

initialize

  • Das wichtigste und am häufigsten gebrauchte Ereignis
  • Beim Öffnen des Formulars
  • Die Daten aus der XML-Datei sind im Formular gefüllt
  • es können sowohl Objekte auf Inhaltsseiten wie auf Masterseiten angesprochen werden

form:ready

  • Beim Öffnen des Formulars
  • Die Daten aus der XML-Datei sind im Formular gefüllt
  • Standardereignis für Objekte auf Inhaltsseiten.
  • Auf Masterseiten ist dieses Ereignis nicht verfügbar.

layout:ready

  • Das Formular ist komplett gerendert
  • Ereignis wird auch mehrfach ausgeführt, wenn Neuberechnung)
  • Zugriff auf Seitenangaben und Y-Koordinaten Objekte
  • XML-Daten sind ins Formular übernommen
  • Bei dynamischen Formularen, zu Beginn und bei jeder Layout-Änderung (Ein- und Ausblenden etc.) das Layout neu berechnet. Seitenumbrüche werden festgelegt. layout:readyEvent wird nach Abschluss Layout-Neuberechnung ausgelöst.

Interaktive Ereignisse

calculate

a.RawValue = b.rawValue + c.rawValue;
  • Für Feld "a" wird das calculate Ereignis ausgelöst, wenn sich der Wert von "b" oder "c" ändert.
  • Bei diesem Ereignis kann man sehr schnell sehr performancelastige Verarbeitungen programmieren und daher sollte dieses Ereignis nur mit Vorsicht eingesetzt werden.

Siehe Übertragscoding im Event „calculate“

Siehe Adobe-Hilfe: Event „Calculate“.

change

  • Ausgelöst, wenn sich der Feldinhalt ändert
  • Nur sinnvoll bei Checkboxen, Drop-Down-Listen oder Listenfeldern. Bei Textfeldern wird das Ereignis bei jedem Buchstaben ausgelöst und macht so in der Regel keinen Sinn

click

  • Ausgelöst, wenn ein Formularobjekt angeklickt wird. Es wird nicht ausgelöst, wenn per Tastatur der Fokus auf ein Textfeld gesetzt wird
  • Eine Checkbox hat den Wert, nachdem in die Checkbox geklickt wird
  • Wenn zwei mal direkt hintereinander auf die Checkbox geklickt wird, wird jedesmal das Event ausgelöst

enter

  • Ausgelöst, wenn ein Formularobjekt angeklickt wird.
  • Eine Checkbox hat den Wert, bevor in die Checkbox geklickt wurde
  • Anwendung: Feldinhaltprüfungen, auch auf andere Felder
  • Wenn zwei mal direkt hintereinander auf die Checkbox geklickt wird, wird nur beim ersten mal das Event ausgelöst

layout:ready

  • bei dynamischen Formularen wird zu Beginn und bei jeder Layout-Änderung (Ein-/Ausblenden Felder etc.) das Layout neu berechnet. Das Event wird nach Abschluss dieser Layout-Neuberechnung ausgelöst
  • Zugriff auf die Seitenzahl und die Y-Koordinationen des Formulars
  • Vorsicht: Dieses Event kann sehr häufig ausgelöst werden
  • Bei diesem Ereignis sollten keine Layout-Änderungen ("hidden", "visible", "invisible", etc.) durchgeführt werden

prePrint

  • direkt bevor gedruckt wird, wird dieses Ereignis ausgelöst
  • Anwendung: z. B. Barcodes einblenden, die nur beim Druck benötigt werden oder Plausibilitätsprüfungen, die Druck verhindern

postPrint

  • Ausgelöst direkt nach dem Druck
  • Anwendung: z. B. alle Felder schreibgeschützt setzen, sodass Druck nur mit gleichen Daten möglich ist

preSave

  • Ausgelöst direkt vor dem Speichern

postSave

  • Ausgelöst direkt nach dem Speichern

preSign

  • Ausgelöst direkt bevor der Benutzer signiert
  • Direkt nach dem Signieren kann das Formular nicht mehr verändert werden, ohne dass die Signatur ungültig wird
  • Passend für Plausibilitätsprüfungen

postSign

  • Ausgelöst direkt nach dem Signieren
  • Anwendung: Alle Felder schreibgeschützt setzen

preSubmit

  • Ausgelöst direkt vor dem Versenden per Mail
  • Passend für Plausibilitätsprüfungen

postSubmit

  • Ausgelöst nach dem Versenden per Mail
  • Anwendung: Alle Felder schreibgeschützt setzen

validate

  • Ausgelöst, wenn sich der Inhalt des zugehörigen Feldes ändert
  • Am Ende des Codings muss TRUE oder FALSE zurückgeben werden
TRUE;

oder

FALSE;
  • Bei FALSE wird der Text in einer MessageBox ausgegeben, der in den Objekteigenschaften unter "Wert/Überprüfungsskript-Meldung" eingetragen ist. Wenn dort kein Text eingetragen ist, erscheint ein Standardtext

exit

  • Ausgelöst, wenn das Feld den Fokus verliert
  • Anwendung: Überprüfung Benutzereingaben

mouseEnter

  • Ausgelöst, wenn man mit der Maus über einem Formularobjekt sich befindet
  • Anwendung: Ausfüllanleitungen

preOpen

  • Ausgelöst, wenn der Benutzer die Drop-down-Liste öffnen will
  • Anwendung: Füllen von Drop-Down-Listen, in Abhängigkeit von Werten anderer Felder

Ereignisse bei

Teilformular

ScriptingEvent2.jpg

Textfeld

ScriptingEvent4.jpg

Formular

ScriptingEvent6.jpg

Ereignisgruppen

Die Ereignisse lassen sich in Gruppen zusammen.

Prozess-Ereignisse

Die Ereignisse werden bei allen Formularen (Ausgabeformulare und interaktive Formulare) auftreten und werden vom Formular ausgelöst.

  • calculate
  • form:ready
  • indexChange
  • initialize
  • layout:ready
  • validate
  • validationstate

Anwendungs-Ereignisse

Die Ereignisse treten bei allen Formulartypen auf und werden vom Adobe Reader ausgelöst.

  • docClose
  • docReady
  • postPrint
  • postSave
  • postSubmit
  • prePrint
  • preSave
  • preSubmit

Interaktive Ereignisse

Die Ereignisse treten nur bei interaktiven Formularen auf. Der Benutzer interagiert mit dem Formular.

  • change
  • click
  • enter
  • exit
  • mouseDown
  • mouseEnter
  • mouseExit
  • mouseUp
  • postOpen
  • postSign
  • preOpen
  • preSign

Web-Links

Literatur