Lineární grafy v JasperReports / iReports
Moje práce na reportech a JasperServeru pro jejich správu pokračuje i nadále. Aktuálně jsem řešil problém, jak správně vytvořil lineární graf (Line Chart) v editoru iReports. Kde byl problém? Byly dokonce dva. První se týkal správného umístění elementu grafu v JRXML šabloně, druhý zadání zdrojových políček z dotazu. Druhý ze zdrojů uváděl, že do libovolné části šablony, která se neopakuje. Po spuštění reportu, kdy se mi vygeneroval graf na tolik stránek, kolik bylo řádků zdrojových dat, jsem pochopil, že to nepůjde do libovolného elementu. Tutoriál ke grafům v iReports dal správnou odpověď — graf umístěte do elementu <summary>. Řešení, jak nastavit zdrojová pole, jsem našel na Java Lobby. Máme-li dotaz:
SELECT
workstatus.time AS DATE_TIME,
workstatus.active_projects_count AS PROJECT_COUNT
FROM workstatus
WHERE workstatus.time BETWEEN $P{VALID_FROM} AND $P{VALID_TO}
ORDER BY workstatus.time ASC
Můžeme nastavit graf tímto způsobem:
- Výraz pro sérii: název jedné linie v grafu, např.
"Počet aktivních projektů" - Výraz pro kategorii: Osa X,
$F{DATE_TIME} - Hodnota výrazu: Osa Y,
$F{PROJECT_COUNT}
Graf se vykreslí v horizontální orientaci, kde na ose X budou data, na ose Y počty projektů a pod grafem v legendě název tohoto datového zdroje. Do grafu lze samozřejmě zadat více datových setů a mít více přímek.
Komentáře:
Nový komentář:
Komentáře musí být před publikováním schváleny. Děkuji!
proč nepoužít excel? ;-)
odpověz na tento komentář- tento komentář inspiroval Padacek — #2
03.02. 2009, 12:57inspirováno havlikp — #1 Máš data v databázi, třeba Oracle, a chceš z nich udělat nějaký report a ten nabídnout v různých formátech - PDF, XLS, DOC, RTF... Nejrychlejší to je přes JasperReports, pokud jsi v něm už mistr.
Prostě máš templatu, tam dáš zdrojový dotaz (nemusí to být zrovna SQL), definuješ zdroj, kde se ptát, dotaz ti vyplivne hodnoty a ty nasázíš do předem definovaných polí reportu. Většina věcí se udělá automaticky. A ještě na šablony je WYSIWYG editor.
odpověz na tento komentář 03.02. 2009, 16:14