Zdrojový kód wiki Proměnné (Variables)
Version 3.1 by Jan Šimeček on 2024/08/02 12:08
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | = Pořadí = | ||
| 2 | |||
| 3 | Změny proměnných jsou vyhodnocovány v pořadí od shora dolů: | ||
| 4 | |||
| 5 | [[image:1722593306704-227.png]] | ||
| 6 | |||
| 7 | = Hodnota Null = | ||
| 8 | |||
| 9 | Vždy je potřeba v proměnné kontrolovat jestli nemůže být vstupní hodnota NULL: | ||
| 10 | |||
| 11 | Výstup se i bez toho může zdát plně funkční a většinou to Jaspersoftu nevadí, ale někdy může docházet k anomáliím, které se projeví až ve vysokém počtu dat. (pozorováno až u zákazníka s 500 000 svazky, doteď si toho nikdo na běžně velkých datech nevšiml). | ||
| 12 | |||
| 13 | Třeba tato chybějící kontrola způsobovala problém, kdy se svazky seskupovali do jiné lokace | ||
| 14 | |||
| 15 | [[image:1722593311051-553.png]] | ||
| 16 | |||
| 17 | = Součet desetinných čísel (Kč) = | ||
| 18 | |||
| 19 | Vždy používat **BigDecimal**. | ||
| 20 | |||
| 21 | Nepoužívat Jasperreport funkce jako je třeba SUM, ale vybírat **No Calculation Function **- jinak dochází k mezizaokrouhlování, které zkreslí celkový součet. (ne vždy k tomu musí dojít - záleží na datech) | ||
| 22 | |||
| 23 | Nastavit počáteční hodnotu pomocí **BigDecimal.ZERO**. | ||
| 24 | |||
| 25 | Sčítání provádět ručně v Expression: | ||
| 26 | |||
| 27 | Na příkladu níže k navýšení probíhá pokud je svazek COMMON a není periodikum - jinak je zachována původní hodnota price_summary viz konec. | ||
| 28 | |||
| 29 | Pokud svazek podmínku splňuje, tak je proměnná price_summary navýšená pomocí ADD, kde k navýšení dojde pouze pokud je cena vyplněna jinak se přičte pouze nula BigDecimal.ZERO. | ||
| 30 | |||
| 31 | (($F{_THIS}.getItem().getType().name().equals("COMMON")) && ($F{_THIS}.getItem().isPeriodical() == false))? | ||
| 32 | **$V{price_summary}.add($F{_THIS}.getItem().getPrice() != null ? $F{_THIS}.getItem().getPrice() : BigDecimal.ZERO) : $V{price_summary}** | ||
| 33 | |||
| 34 | [[image:1722593317049-783.png]] |