Přeskočit na hlavní obsah

Konfigurovatelné reporty

Potřebujete změnit jednoduše některé údaje na tiskopise? Využijte konfigurovatelné reporty, které je možné následně uživatelsky editovat

Autor: Petr Pech
Aktualizováno před více než týdnem

🧾 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-reports

Tento 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}/metadata

Tato metadata obsahují definici možností konfigurace reportu.

🧩 Konfigurace reportu

Samotnou konfiguraci reportu lze číst i zapisovat na adrese:

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

Konfigurace obsahuje konkrétní nastavení reportu.

🌍 Lokalizace reportu

Lokalizaci reportu lze číst a zapisovat na adrese:

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

Tato čá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

config.json

Konfigurace reportu

metadata.json

Metadata reportu

localization.json

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.json

Kó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


🔌 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

  1. Jak zjistím kód reportu (reportId)?

Kód lze zjistit na adrese:

{evidence}/reports.xml

ve 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.

Dostali jste odpověď na svou otázku?