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í času |
Symboly pro formátování numerické 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
Okomentovat