Datumsformatierung Adobe forms

SFP..SAPscript (Transaktion SE71)..Smartforms (TA Smartforms).. Interactive Forms..Transaktion EFRM)..SIFBA..IAF..AIF..SIFBA - SAP_Interactive_Forms_based_on_Adobe // LÖSUNGSANSÄTZE aber AUCH FÜR "NORMALE" PDFs VERWENDBAR ;-)
Antworten
Freddy24
Beiträge: 11
Registriert: 22.01.2018, 13:29

Datumsformatierung Adobe forms

Beitrag von Freddy24 » 17.07.2019, 13:17

Hallo,

ist es möglich die Datumsformatierung im Formcalc oder Javascript für das ganze Formular anzugeben? Also wenn ich z.B. alle Datumsfelder im Format TT.MM.JJJJ anzeigen will?

Viele Grüsse
Freddy

Habakuk
Beiträge: 14
Registriert: 27.04.2016, 15:46
Wohnort: Passau
Kontaktdaten:

Re: Datumsformatierung Adobe forms

Beitrag von Habakuk » 25.07.2019, 11:50

Hallo,

diese Anforderung ist in meinen Augen in zwei Teile aufzugliedern.

1) Über Coding ist es möglich für ein einzelnes Feld das Muster zu hinterlegen. Da es hier um eine Anzeigethematik geht müssen wir das Anzeigemuster auch dementsprechend setzen.

this.format.picture.value = "date{DD.MM.YYYY}";

Damit wird das Anzeigemuster eines Feldes (wenn man im Feld selber das Coding hinterlegt) auf TT:MM.JJJJ gesetzt.

2) Wenn das Coding nicht in jedem Feld Datumsfeld hinterlegt werden soll, sondern automatisch müssen alle Datumsfelder im Formular identifiziert werden. Dafür wie man grundsätzlich alle Felder im Formular ermittelt gibt es hier zahlreiche Beispiele im Forum (z.B. selbe Logik wie wenn man Pflichtfelder identifizieren will). Um zu überprüfen ob ein Feld ein Datumsfeld ist kann folgendes Coding ermittelt werden.

this.ui.oneOfChild.className (wenn man im Feld selber das Coding hinterlegt).

Ist das Feld ein Datumsfeld ist der Rückgabewert dateTimeEdit (am leichtesten nachzuvollziehen wenn man sich mal die XML-Quelle von einem Datumsfeld ansieht im Livecycle Designer).

Anschließend kann für dieses Feld über die Eigenschaft format.picture.value das Muster gesetzt werden.

Viele Grüße
Habakuk

Freddy24
Beiträge: 11
Registriert: 22.01.2018, 13:29

Re: Datumsformatierung Adobe forms

Beitrag von Freddy24 » 08.08.2019, 15:05

Hallo Habakuk,

vielen Dank für Deine Antwort; den ersten Teil kenne ich und verwende ihn auch (leider eben nicht durchgängig). Mit dem zweiten Teil komme ich nicht zurecht. Ich bin ABAP-Entwickler und hangel mich eher mühsam durch die Javascript-Zeilen im Adobe. Wir haben hier im Projekt 87 Adobe Formulare entwickelt und erst bei der Übersetzung bemerkt, dass anstatt dem Format DD.MM.YYYY wie es in der Sprache DE automatisch verwendet wird, es in Sprache FR mit dem Kurztext des Monatsnamens gefüllt wird. Also für 1.7.19 dann '1 juil. 19'. Ich habe mich inzwischen durch alle Formulare gearbeitet und durchgängig das Anzeigemuster eingetragen. Daher hat es sich jetzt erstmal für mich erledigt und ich werde bei zukünftigen Neuentwicklungen darauf achten dass ich Datumsfelder immer gleich mit einem Muster versehen.

Viele Grüsse
Freddy

Habakuk
Beiträge: 14
Registriert: 27.04.2016, 15:46
Wohnort: Passau
Kontaktdaten:

Re: Datumsformatierung Adobe forms

Beitrag von Habakuk » 12.08.2019, 12:07

Hallo Freddy,

die Aufbereitung der Formate ist ja abhängig vom Gebietsschema des Formulars (also der Kombination der Übergabeparameter in den Docparams aus langu und country). Die Aufbereitung die hinter diesem Gebietsschema liegt, entspricht dann der gängigsten Aufbereitung (nach der jeweiligen ISO) für das Land und in Frankreich wird nun mal meistens das Datum in der der Form '1.juil. 19' angegeben.

Das Anzeigemuster fest zu hinterlegen ist mit Vorsicht zu genießen, da du dem Formular somit ein wenig seine Stärke beraubst das Datum dynamisch für das Ausgabeland aufzubereiten. Denn für einige Länder (z.B. USA) ist es ja wahrscheinlich durchaus gewollt, dass sich das Datum weiterhin dynamisch aufbereitet oder? Deswegen ist die Hinterlegung eines festen bei Muster bei komplexen Formularen die sehr dynamisch genutzt werden (beispielsweise die SD-Formulare die für viele Länder benutzt werden) bei mir immer der letzte Weg.

Das heißt wie du das Problem am elegantesten löst ohne überall das Muster fest zu hinterlegen (was ja auch einfach eine Heidenarbeit ist) kommt konkret auf die Situation (wie viele unterschiedliche "Gebietsschemakonstellationen" / Anzahl Felder etc. / Internes oder externes Formular) in der das Formular genutzt wird.
A) Anderen country-Parameter übergeben wenn die die Aufbereitung unabhängig vom Land sein soll
B) Wenn die Aufbereitung nur für Frankreich anders sein soll trotzdem über Coding das Muster überschreiben, sodass die anderen Länder nicht betroffen sind

Viele Grüße
Habakuk

Antworten