🧾 Konfigurovatelné reporty
Potřebujete jednoduše upravit některé údaje na tiskopisech v systému ABRA Flexi?
K tomu slouží konfigurovatelné reporty, které lze následně upravovat přímo uživatelsky – bez nutnosti složitého programování nebo tvorby vlastního reportu.
Konfigurovatelné reporty jsou vhodné zejména v situacích, kdy:
standardní systémové tiskové sestavy neobsahují všechny potřebné informace,
potřebujete upravit vzhled nebo obsah tiskopisu,
nechcete vytvářet plně vlastní report technickým způsobem.
⚙️ Co jsou konfigurovatelné reporty
Aplikace umožňuje konfigurovat vybrané systémové i uživatelské reporty.
Pokud systémové reporty nevyhovují nebo je pro vás tvorba vlastních reportů příliš technicky náročná, konfigurovatelné reporty představují jednoduché řešení.
Důležité principy:
Report musí být připraven pro použití konfiguračních parametrů.
Systémové reporty připravují tvůrci aplikace.
Uživatelské reporty musí být vydány společně se specializovanými přílohami.
Nastavení konfigurovatelného reportu lze provádět ve webovém rozhraní aplikace.
📄 Dostupné konfigurovatelné reporty
Seznam dostupných konfigurovatelných reportů lze získat pomocí API na adrese:
/c/{firma}/configurable-reportsTento seznam je možné zobrazit také v demo aplikaci.
V první fázi jsou ke konfiguraci dostupné například:
Faktura vydaná
Objednávka přijatá
Tyto reporty lze následně upravovat prostřednictvím konfiguračního editoru.
🗄️ Úložiště konfigurace
Pro práci s konfigurací konfigurovatelných reportů jsou k dispozici specializované adresy (URL).
📑 Metadata reportu
Metadata jsou dostupná na adrese:
/c/{firma}/configurable-reports/{reportId}/metadataTato metadata obsahují definici možností konfigurace reportu.
🧩 Konfigurace reportu
Samotnou konfiguraci reportu lze číst i zapisovat na adrese:
/c/{firma}/configurable-reports/{reportId}/configurationKonfigurace obsahuje konkrétní nastavení reportu.
🌍 Lokalizace reportu
Lokalizaci reportu lze číst a zapisovat na adrese:
/c/{firma}/configurable-reports/{reportId}/localizationTato část slouží zejména pro úpravu textů a jazykových variant reportu.
💾 Formát ukládání konfigurace
Konfigurační parametry jsou ukládány ve formátu JSON.
Pro uživatelský report se používají přílohy s těmito názvy:
Soubor | Význam |
| Konfigurace reportu |
| Metadata reportu |
| Lokalizační texty |
Tyto soubory obsahují definice, podle kterých se report následně konfiguruje.
💾 Uložení konfigurace reportu
Nastavení konfigurace reportu lze uložit také přímo do cílového úložiště aplikace.
Pokud jde o systémový report, JSON konfigurace se uloží do evidence global-store pod klíčem:
{kód pro tisk}-config.jsonKód pro tisk {reportId} lze získat na URL {evidence}/reports.xml pod vlastností printCode.
Například pro sumovaný report faktury bude výsledný klíč:
favAkt:fakturaKB:SUM-config.json
Reporty faktury vydané v demo aplikaci používají právě tento mechanismus konfigurace a ukládání JSON souborů.
🔌 API adaptér reportu
Pro práci s konfiguračními hodnotami je v reportu dostupný API adaptér, který umožňuje číst hodnoty z konfiguračního JSONu.
Adaptér je dostupný prostřednictvím proměnné _ADAPTER
<parameter name="_ADAPTER" class="cz.winstrom.service.dok.DokladReportAdapter"></parameter>
Tento adaptér poskytuje sadu metod, pomocí kterých lze získávat hodnoty z konfigurace a používat je přímo v reportu.
🧰 Metody adaptéru
🔎 Kontrola existence hodnoty
boolean cfgContains(String key);
Vrací informaci, zda konfigurace obsahuje vlastnost pro uvedený klíč.
✔️ Získání logické hodnoty
Boolean cfgBoolean(String key); Boolean cfgBoolean(String key, boolean defaultValue);
Slouží pro získání logické hodnoty (true/false) z konfiguračního JSONu.
📝 Získání textové hodnoty
String cfgString(String key); String cfgString(String key, String defaultValue);
Vrací textovou hodnotu uloženou v konfiguraci.
🔢 Získání číselné hodnoty
Integer cfgInteger(String key); Integer cfgInteger(String key, Integer defaultValue);
Používá se pro získání číselných hodnot z konfigurace.
📑 Získání definic vlastností
List<ReportProperty> cfgProperties(String key);
Vrací seznam definic pro zobrazení vlastností v reportu.
🧩 Metody třídy ReportProperty
Třída ReportProperty slouží pro práci s jednotlivými vlastnostmi definovanými v konfiguraci.
🏷️ Název vlastnosti
String getProperty();
Vrací název vlastnosti.
🔎 Kontrola existence klíče
boolean cfgContains(String key);
Ověří, zda konfigurace vlastnosti obsahuje uvedený klíč.
✔️ Logická hodnota vlastnosti
Boolean cfgBoolean(String key); Boolean cfgBoolean(String key, boolean defaultValue);
Získá logickou hodnotu z konfigurace konkrétní vlastnosti.
📝 Textová hodnota vlastnosti
String cfgString(String key); String cfgString(String key, String defaultValue);
Vrací textovou hodnotu z konfigurace vlastnosti.
🔢 Číselná hodnota vlastnosti
Integer cfgInteger(String key); Integer cfgInteger(String key, Integer defaultValue);
Vrací číselnou hodnotu z konfigurace vlastnosti.
🔠 Tučné zobrazení hodnoty
boolean isBold();
Určuje, zda má být hodnota v reportu zobrazena tučným písmem.
📄 Ukázka definice konfigurace
Následující ukázka JSON konfigurace demonstruje několik možností úprav reportu:
změnu barvy písma,
pozici loga,
šířku okraje,
definici tří polí v levém sloupci tiskopisu.
Konkrétně se jedná o pole:
datum vystavení
ulici
datovou schránku
{
"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ázka použití v reportu
Následující příklad ukazuje použití konfigurace přímo ve zdrojovém kódu reportu.
<conditionalStyle>
<conditionExpression>
<![CDATA[$P{_ADAPTER}.cfgBoolean("replaceWhiteFontWithBlack", false)]]>
</conditionExpression>
<style forecolor="#010101" backcolor="#0092FF"/>
</conditionalStyle>
Tento zápis znamená, že styl bude aplikován pouze v případě, že konfigurace obsahuje hodnotu replaceWhiteFontWithBlack nastavenou na true.
🌍 Lokalizace reportu
Pro definici lokalizačních textů se používá soubor:
localization.json
🗝️ Klíče běžné lokalizace
Běžná lokalizace používá klíč ve tvaru:
{localeCode}.{groupName}.{subgroupName}.{itemName}
🧾 Lokalizace objektu
Pro lokalizaci konkrétního objektu se používá klíč:
{localeCode}.{className}.{code}
📄 Ukázka definice lokalizace
Ukázka lokalizace definuje překlad pole stránka a státu CZ v češtině:
{
"cs.reports.faktura.stranka": "~ Stránka ~",
"cs.Stat.CZ": "Země koruny české"
}
🧪 Ukázka použití lokalizace
Použití lokalizace ve zdrojovém kódu reportu může vypadat napří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 zajistí, že text bude automaticky přeložen podle aktuálního jazyka systému.
❓ Časté dotazy
Jak zjistím kód reportu (
reportId)?
Kód lze zjistit na adrese:
{evidence}/reports.xmlve vlastnosti printCode.
2. Lze konfigurovat libovolný report?
Ne. Report musí být speciálně připraven pro konfigurovatelné parametry. Pokud není, nelze jej tímto způsobem upravit.
3. Jak zjistím seznam dostupných konfigurovatelných reportů?
Pomocí API endpointu:
/c/{firma}/configurable-reports
Potřebujete poradit?
V případě dotazů k aplikaci nás kontaktujte na podporaflexi@abra.eu případně prostřednictvím chat okna v pravém dolním rohu.
