LiveCycle Designer - Muster

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Der Adobe LiveCycle Designer hat eine komfortable Möglichkeit Zeichen nach Mustern aufzubereiten.

Verwandt zu diesem Thema ist die Begrenzung Vor- und Nachkommastellen.

Grundlagen Muster

Unter den Reiter "Objekt - Feld" lässt sich das Muster über eine Schaltfläche aufrufen.

Muster1.jpg


Die Anzeige der Muster richtet sich nach dem Datentyp des Feldes. Hier ist es ein numerisches Feld.

Muster2.jpg

Numerische Muster

Vorsicht !! Numerische Muster bei CHAR-Feldern

  • Numerische Muster können genauso auch bei Feldern verwendet werden, die im Kontext/ABAP als CHAR typisiert sind. Das funktioniert im Prinzip auch sehr gut, wenn in diesem Feld nur Zeichen stehen, die als Zahlen zu interpretieren sind.
  • Wenn allerdings in diesem CHAR-Feld ein Inhalt steht, der nicht als Zahlwert interpretiert werden kann, wird das ganze Formular nicht mehr ausgegeben !!
  • Es gibt zudem keinen Hinweis in den SY-Feldern beim Funktionsbausteinaufruf auf die Ursache !!
  • Man würde intuitiv erwarten, dass vielleicht der Nichtzahlwert als Text ausgegeben wird oder dass das Feld nicht gefüllt ist, aber das Formular ausgegeben wird. Aber das in so einem Fall das ganze Formular nicht ausgegeben wird, könnte zur Nichtausgabe eines ansonsten tadellos über Monate funktionierendes Formular im Produktivsystem führen. Dann ist das Rätselraten groß, was die Ursache dafür ist. Beim Funktionsbausteinaufruf kommt ein SY-SUBRC = 2 zurück und die Fehlermeldung verweist auf eine ADS-Exception. Das hilft nicht weiter.
  • Besser und robuster ist es Felder, die als Zahl ausgegeben werden, bereits in ABAP im Druckprogramm/der Schnittstelle schon mit einem entsprechenden Typ (z. B. Integer oder CUR) zu typisieren. Dann kann dieser Fehler im Formular nicht passieren.
  • Wenn in einem CHAR-Feld kein Wert übergeben wird, was als Dezimalfeld interpretiert wird, dann wird auch kein Wert ausgegeben, statt z. B. "0,00". Hier hat sich dieses Muster bewährt, wo man den Haken setzt bei "Leer zulässig" und dort den Wert "0.00" einträgt.

Muster5.jpg

Beispiele

Dieser nachfolgende numerische Wert hat maximal 3 Stellen vor dem Komma, und genau eine Stelle nach dem Komma, auch die 0. Ein Wert "3" würde als "3,0" dargestellt. Ein Wert "3,123" würde als "3,1" gerundet dargestellt.

num{zz9.9}


Dieser Wert hat maximal 3 Stellen vor dem Komma und maximal 3 Stellen nach dem Komma. Ein Wert "3" würde als "3" dargestellt, ein Wert "3,123" als "3,123". Ein Wert "3,100" würde als "3,1" dargestellt.

num{zz9.888}

Tausenderpunkte

Dieser Wert benutzt Tausenderpunkte vor dem Komma und zeigt vor dem Komma mindestens die 0 an. Hinter dem Komma stehen immer 2 Werte.

num{z,zzz,zz9.99}

Ausblenden einer Zahl 0

Bei diesem Muster wird auch "0" dargestellt, sofern es 0en nach dem Komma sind.

Muster3.jpg

MusterX1.JPG

Möchte man keine 0en nach dem Komma, muss das Zeichen "9" durch "z" ersetzt werden. Das sieht optisch z. B. bei Mengenangaben oft besser aus.

Im Projektbeispiel hatte ich ein Feld, was sowohl eine Währung mit 2 Nachkommastellen, als auch ein Mengenfeld mit maximal 3 Nachkommastellen sein konnte. Um hier flexibel die Nachkommastellen auszugeben, eignete sich das folgende Muster gut

num{zzz,zzz,zz9.99z}

Die Mengen als auch die Währungsbeträge wurden also mit 2 Nachkommastellen ausgegeben, es sei denn die Menge hatte an der dritten Nachkommastelle eine Zahl ungleich 0.

Ergänzen eines Textes zu einem numerischen Wert

Ein beliebiger Text kann ergänzt werden durch Einschließen in einfache Anführungszeichen, z. B. soll das Prozentzeichen hinter einem Dezimalwert dargestellt werden.

num{z,zz9.9}'%'

Einen String mit Trennzeichen formatieren

  • In einem Projektbeispiel wurde eine IBAN übermittelt
DE87200000000002020199 (Nummer verfälscht)

Es sollte aber so ausgegeben werden im Formular

DE87 2000 0000 0002 0201 99

Man hätte es in ABAP schon entsprechend aufbereiten können mit Spaces. Aber mit Mustern geht das auch sehr komfortabel und intuitiv. Die Zeichen vom String, die weiterhin ausgegeben werden sollen, werden mit 0 symbolisiert. Die nötigen Spaces werden dazu geschrieben.

Muster4.jpg


Hier wurden Spaces zwischen den IBAN-Nummern benötigt. Aber es können auch beliebige alphanumerische Zeichen verwendet werden, zumindest habe ich bisher noch keine Ausnahmen bemerkt.

Datumsmuster und Zeitmuster

Siehe „Adobe LiveCycle® Designer ES2 und SAP Interactive Forms: Scripting für Nicht-Programmierer“, von Ulrich Bähr, S. 94

Siehe help.adobe.com: Uhrzeitformate und Datumsformate

Datum

Intern hat ein Datumsfeld in SAP 8 Stellen: JJJJMMTT.

Die Musterwahl im Adobe LiveCycle Designer bietet bereits vier vorgefertigte Muster.

Die häufigsten Ausgabesprachen im deutschsprachigen Raum sind Deutsch und Englisch. Daher sind die Beispiele in diesen zwei Sprachen.

Es wird der 23.01.2015 in unterschiedlichen Formaten dargestellt, abhängig von der Sprache DE oder FR und dem gewählten Muster.

Short

  • EN = 1/23/15
  • DE = 23.01.15

Medium

  • EN = Jan 23, 2015
  • DE = 23.01.2015

Long

  • EN = January 23, 2015
  • DE = 23. Januar 2015

Full

  • EN = Friday, January 23, 2015
  • DE = Freitag, 23. Januar 2015

Zeit

  • 10:46 = HH:MM
  • 10:46:56 = HH:MM:SS

Gebietsschema

  • Defaultmäßig steht bei einem Muster das Gebietsschema auf "Standardsprache". Es hängt dann von den Benutzereinstellungen ab, in welchem Format ein Zahlenfeld, Währungsfeld oder Datum ausgegeben wird.
  • Um eine einheitliche Ausgabe - unabhängig von den Benutzereinstellungen - zu erreichen kann man das Gebietsschema auf "Deutsch (Deutschland)" stellen, sondern z. B. immer eine Währungsausgabe im Format 1.000,00 gewünscht ist, statt 1,000.00.
  • Vorsicht: Es muss bei expliziter Angabe eines Gebietsschemas auch immer ein Muster hinterlegt sein, sonst wird weiterhin das Gebietsschema "Standardsprache" gezogen.
  • siehe Adobe Hilfe

Web-Links

Literatur