🧾 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-reportsTento 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}/metadataTieto 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}/configurationKonfigurácia obsahuje konkrétne nastavenie reportu.
🌍 Lokalizácia reportu
Lokalizáciu reportu možno čítať a zapisovať na adrese:
/c/{firma}/configurable-reports/{reportId}/localizationTá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 |
| Konfigurácia reportu |
| Metadáta reportu |
| 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.jsonKó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
Reporty vydanej faktúry v demo aplikácii využívajú práve tento mechanizmus konfigurácie a ukladania JSON súborov.
🔌 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
Ako zistím kód reportu (
reportId)?
Kód možno zistiť na adrese:
{evidence}/reports.xmlvo 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.
