Přeskočit na hlavní obsah

Formátování hodnoty v layoutu Adobe formuláře

Zobrazení dnešního data ve formuláři kupříkladu v anglické (USA) lokalizaci může být ve tvaru „2022-02-24“, „February 24, 2022“, nebo „Thursday, February 24, 2022“, anebo je libo „Thursday, the 24 of the February, 2022“? Není problém, řeč bude o formátování pomocí vzorců v Adobe Designeru.

Pro podrobnosti o formátování si jdeme do dokumentace k produktu Adobe LiveCycle ES4, jehož součástí je náš používaný Adobe LiveCycle Designer 11.

Při psaní formátovacích vzorů (patterns) v layoutu formuláře rozlišujeme numerické/desetinné hodnoty, textové hodnoty, datum, čas, datum a čas. Jejich pravidla a symboly se v závislosti na datovém typu liší.

Symboly pro formátování datumu
Symboly pro formátování datumu

Symboly pro formátování času
Symboly pro formátování času

Symboly pro formátování numerické hodnoty
Symboly pro formátování numerické hodnoty

Symboly pro formátování textové hodnoty
Symboly pro formátování textové hodnoty

Pravidla platí jak v samostatných objektech Date/Time Field, Decimal Field, Numeric Field, Text Field, tak i v plovoucích polích (Floating Field) při textovém objektu. Vzory zapisujeme na paletě Object ve vlastnosti Display pattern.

V případě, kdy formátovaná hodnota může mít proměnnou délku, píšeme vzor kupříkladu text{999*9999}|text{999*999*9999} a mluvíme pak o proměnném vzoru.

Syntaxe: category_name{pattern}|category_name{pattern}|category_name{pattern}

Předdefinované kategorie jsou text, date, time, number.

SAP vývojář v některých případech může formátování řešit v ABAP, odkud si do Adobe formuláře posílá veškeré hodnoty převedené na text. Sice bizarní řešení, ale je to také řešení, se kterým jsme se v praxi setkali a dokonce měli při volání Adobe formuláře výjimku SYSTEM_ERROR. Pro zajímavost konkrétně v situaci, kdy formátovaná hodnota (text) byla v layoutu formuláře přivedena (binding) do objektu Numeric Field. Vedlo na výjimku CX_FP_RUNTIME_SYSTEM s chybou renderování v ADS.

ERRCODE: 200101
ERRMSGSHORT: com.adobe.ProcessingException: com.adobe.ProcessingException: 29216 : Invalid value: '5,000' for 'float' property

Při požadavku na dynamickou tvorbu dlouhých textů, pak tyto texty vždy produkujeme prostředky na straně ABAPu a na rozhraní Adobe odesíláme finálně formátovaný odstavec textu (SAPscript text). V kontextu Adobe formuláře si pomáháme stylem (SAP Smart Forms – Smart Styles) a v layoutu Adobe formuláře umísťujeme Rich Text.

Komentáře