Preskoči na glavno vsebino

Konfigurovateľné správy

Potrebujete jednoducho zmeniť niektoré údaje v tlačive? Využite konfigurovateľné reporty, ktoré je možné následne používateľsky upravovať

Avtor: Petr Pech

🧾 Konfigurovateľné reporty

Potrebujete jednoducho upraviť niektoré údaje na tlačivách v systéme ABRA Flexi?
Na to slúžia konfigurovateľné reporty, ktoré možno následne upravovať priamo používateľsky – bez nutnosti zložitého programovania alebo tvorby vlastného reportu.

Konfigurovateľné reporty sú vhodné najmä v situáciách, keď:

  • štandardné systémové tlačové zostavy neobsahujú všetky potrebné informácie,

  • potrebujete upraviť vzhľad alebo obsah tlačiva,

  • nechcete vytvárať plne vlastný report technickým spôsobom.


⚙️ Čo sú konfigurovateľné reporty

Aplikácia umožňuje konfigurovať vybrané systémové aj používateľské reporty.

Ak systémové reporty nevyhovujú alebo je pre vás tvorba vlastných reportov príliš technicky náročná, konfigurovateľné reporty predstavujú jednoduché riešenie.

Dôležité princípy:

  • Report musí byť pripravený na použitie konfiguračných parametrov.

  • Systémové reporty pripravujú tvorcovia aplikácie.

  • Používateľské reporty musia byť vydané spolu so špecializovanými prílohami.

  • Nastavenie konfigurovateľného reportu možno vykonávať vo webovom rozhraní aplikácie.


📄 Dostupné konfigurovateľné reporty

Zoznam dostupných konfigurovateľných reportov možno získať pomocou API na adrese:

/c/{firma}/configurable-reports

Tento zoznam je možné zobraziť aj v demo aplikácii.

V prvej fáze sú na konfiguráciu dostupné napríklad:

  • Vydaná faktúra

  • Prijatá objednávka

Tieto reporty možno následne upravovať prostredníctvom konfiguračného editora.


🗄️ Úložisko konfigurácie

Na prácu s konfiguráciou konfigurovateľných reportov sú k dispozícii špecializované adresy (URL).

📑 Metadáta reportu

Metadáta sú dostupné na adrese:

/c/{firma}/configurable-reports/{reportId}/metadata

Tieto metadáta obsahujú definíciu možností konfigurácie reportu.

🧩 Konfigurácia reportu

Samotnú konfiguráciu reportu možno čítať aj zapisovať na adrese:

/c/{firma}/configurable-reports/{reportId}/configuration

Konfigurácia obsahuje konkrétne nastavenie reportu.

🌍 Lokalizácia reportu

Lokalizáciu reportu možno čítať a zapisovať na adrese:

/c/{firma}/configurable-reports/{reportId}/localization

Táto časť slúži najmä na úpravu textov a jazykových variantov reportu.


💾 Formát ukladania konfigurácie

Konfiguračné parametre sú ukladané vo formáte JSON.

Pre používateľský report sa používajú prílohy s týmito názvami:

Súbor

Význam

config.json

Konfigurácia reportu

metadata.json

Metadáta reportu

localization.json

Lokalizačné texty

Tieto súbory obsahujú definície, podľa ktorých sa report následne konfiguruje.


💾 Uloženie konfigurácie reportu

Nastavenie konfigurácie reportu možno uložiť aj priamo do cieľového úložiska aplikácie.

Ak ide o systémový report, JSON konfigurácia sa uloží do evidencie global-store pod kľúčom:

{kód pro tisk}-config.json

Kód pre tlač {reportId} možno získať na URL {evidence}/reports.xml pod vlastnosťou printCode.

Napríklad pre sumovaný report faktúry bude výsledný kľúč:

favAkt:fakturaKB:SUM-config.json

🔌 API adaptér reportu

Na prácu s konfiguračnými hodnotami je v reporte dostupný API adaptér, ktorý umožňuje čítať hodnoty z konfiguračného JSONu.

Adaptér je dostupný prostredníctvom premennej _ADAPTER

<parameter name="_ADAPTER" class="cz.winstrom.service.dok.DokladReportAdapter"></parameter>

Tento adaptér poskytuje sadu metód, pomocou ktorých možno získavať hodnoty z konfigurácie a používať ich priamo v reporte.

🧰 Metódy adaptéra

🔎 Kontrola existencie hodnoty

boolean cfgContains(String key);

Vracia informáciu, či konfigurácia obsahuje vlastnosť pre uvedený kľúč.

✔️ Získanie logickej hodnoty

Boolean cfgBoolean(String key); Boolean cfgBoolean(String key, boolean defaultValue);

Slúži na získanie logickej hodnoty (true/false) z konfiguračného JSONu.

📝 Získanie textovej hodnoty

String cfgString(String key); String cfgString(String key, String defaultValue);

Vracia textovú hodnotu uloženú v konfigurácii.

🔢 Získanie číselnej hodnoty

Integer cfgInteger(String key); Integer cfgInteger(String key, Integer defaultValue);

Používa sa na získanie číselných hodnôt z konfigurácie.

📑 Získanie definícií vlastností

List<ReportProperty> cfgProperties(String key);

Vracia zoznam definícií pre zobrazenie vlastností v reporte.


🧩 Metódy triedy ReportProperty

Trieda ReportProperty slúži na prácu s jednotlivými vlastnosťami definovanými v konfigurácii.

🏷️ Názov vlastnosti

String getProperty();

Vracia názov vlastnosti.

🔎 Kontrola existencie kľúča

boolean cfgContains(String key);

Overí, či konfigurácia vlastnosti obsahuje uvedený kľúč.

✔️ Logická hodnota vlastnosti

Boolean cfgBoolean(String key); Boolean cfgBoolean(String key, boolean defaultValue);

Získa logickú hodnotu z konfigurácie konkrétnej vlastnosti.

📝 Textová hodnota vlastnosti

String cfgString(String key); String cfgString(String key, String defaultValue);

Vracia textovú hodnotu z konfigurácie vlastnosti.

🔢 Číselná hodnota vlastnosti

Integer cfgInteger(String key); Integer cfgInteger(String key, Integer defaultValue);

Vracia číselnú hodnotu z konfigurácie vlastnosti.

🔠 Tučné zobrazenie hodnoty

boolean isBold();

Určuje, či má byť hodnota v reporte zobrazená tučným písmom.


📄 Ukážka definície konfigurácie

Nasledujúca ukážka JSON konfigurácie demonštruje niekoľko možností úprav reportu:

  • zmenu farby písma,

  • pozíciu loga,

  • šírku okraja,

  • definíciu troch polí v ľavom stĺpci tlačiva.

Konkrétne ide o polia:

  • dátum vystavenia

  • ulica

  • dátová schránka

{
"replaceWhiteFontWithBlack": true,
"logoPosition": "left",
"borderWidth": 20,
"addonFields.left": [
{
"property": "datVyst",
"bold": true,
"width": 50,
"align": "right"
},
{
"property": "firma.ulice"
},
{
"property": "nastaveni.datovaSchranka",
"italic": true
}
]
}

🧪 Ukážka použitia v reporte

Nasledujúci príklad ukazuje použitie konfigurácie priamo v zdrojovom kóde reportu.

<conditionalStyle>
<conditionExpression>
<![CDATA[$P{_ADAPTER}.cfgBoolean("replaceWhiteFontWithBlack", false)]]>
</conditionExpression>
<style forecolor="#010101" backcolor="#0092FF"/>
</conditionalStyle>

Tento zápis znamená, že štýl bude aplikovaný len v prípade, že konfigurácia obsahuje hodnotu replaceWhiteFontWithBlack nastavenú na true.


🌍 Lokalizácia reportu

Na definíciu lokalizačných textov sa používa súbor:

localization.json

🗝️ Kľúče bežnej lokalizácie

Bežná lokalizácia používa kľúč v tvare:

{localeCode}.{groupName}.{subgroupName}.{itemName}

🧾 Lokalizácia objektu

Na lokalizáciu konkrétneho objektu sa používa kľúč:

{localeCode}.{className}.{code}

📄 Ukážka definície lokalizácie

Ukážka lokalizácie definuje preklad poľa stránka a štátu CZ v češtine:

{
"cs.reports.faktura.stranka": "~ Stránka ~",
"cs.Stat.CZ": "Země koruny české"
}

🧪 Ukážka použitia lokalizácie

Použitie lokalizácie v zdrojovom kóde reportu môže vyzerať napríklad takto:

<textFieldExpression>
<![CDATA[$P{_ADAPTER}.getTitle( $P{_LOCALE}.GID_REPORTS, "faktura", "stranka", false)]]>
</textFieldExpression>
<textFieldExpression>
<![CDATA[$P{_ADAPTER}.getLocalizedText( $F{stat}, new java.util.Locale($P{_LOCALE}.getLocaleCode()))]]>
</textFieldExpression>

Tento zápis zabezpečí, že text bude automaticky preložený podľa aktuálneho jazyka systému.


❓ Časté otázky

  1. Ako zistím kód reportu (reportId)?

Kód možno zistiť na adrese:

{evidence}/reports.xml

vo vlastnosti printCode.

2. Možno konfigurovať ľubovoľný report?

Nie. Report musí byť špeciálne pripravený pre konfigurovateľné parametre. Ak nie je, nie je možné ho týmto spôsobom upraviť.

3. Ako zistím zoznam dostupných konfigurovateľných reportov?

Pomocou API endpointu:

/c/{firma}/configurable-reports


Potrebujete poradiť?
V prípade otázok k aplikácii nás kontaktujte na podporaflexi@abra.eu prípadne prostredníctvom okna chatu v pravom dolnom rohu.

Ste s tem dobili odgovor na svoje vprašanje?