flickr galerie | Twitter @Padáček | Facebook profil | Foursquare profil | LinkedIn profil

Zápisky.info


Jak rozchodit subreporty na JasperServeru

Každý report v napsaný v JasperReport / navržených v editoru iReport může obsahovat pouze jeden jediný zdrojový dotaz pro získání dat — definovaný v elementu <queryString>. V některých případech potřebujete získat data pomocí dvou či více dotazů. V takových případech si s jediným reportem nevystačíte — pro tento účel jsou k dispozici subreporty složící pro vložení jiných reportů do hlavní šablony. Jednoduše připojíte jiný JRXML soubor, předáte spojení, parametry, … Pokud reporty nahráváte na JasperServer, situace se trochu komplikuje o správné nastavení cesty k druhé šabloně.

Jak se pracuje s JasperServerem, jsem představil v dřívějším tutorialu (anglicky). Pro ilustraci budeme potřeboval dva reporty: hlavní, MainReport.jrxml, generující tabulku dat, a doplňkový, SubReport.jrxml, ve kterém se bude zobrazovat jeden řádek s nějakou hodnotou získanou z databáze. Reporty samozřejmě mají své parametry, nastavení a lze je spouštět v editoru samostatně. Na server je nahrajeme z iReport pomocí JS pluginu — zvolíme složku, kde je chce umístit, klikneme pravým a pomocí Add > Report Unit nahrajeme hlavní report, resp. Add > JRXML Document šablonu subreportu, protože ho nebudeme pouštět samostatně, ale vkládat do hlavního reportu.

Máme–li obě šablony nahrané na server, otevřeme JRXML soubor hlavního reportu. Pro vložení druhé šablony použijeme tlačítko Subreport z hlavní lišty a někde v report, třeba v sekci <title> nastavíme prostor pro vykreslení. Objeví se průvodce pro vytvoření. Zvolíme Just create the subreport element (Vytvořit pouze element subreport) a potvrdíme; jeho atributy nastavíme ve vlastnostech: V záložce Subreport musíme předně nastavit spojení k databázi. V roletce Connection/Data Source Expression zvolíme Use connection expression a jako výraz zadáme $P{REPORT_CONNECTION}. Tím se přenese datové spojení použité pro hlavní report. Další důležitou záložkou je Subreport (Other), kde nastavíme cestu k šabloně subreportu. Jako Subreport Expression Class (třídu výrazu) nastavíme java.lang.String a jako samotný Subreport Expression (výraz subreportu) zadáme absolutní cestu k šabloně a důležitý je i pseudo–protokol „repo“. Máme–li šablonu uloženou na JasperServeru v složkách "(Kořen) / Subreports", pak bude výraz vypadat následovně (také uvozovky jsou důležité, protože se jedná o zápis řetězce v syntaxi jazyka Java):

"repo:/Subreports/SubReport.jrxml"

Nyní by se výsledek ze subreportu měl objevit přímo v hlavním reportu.

Vloženo 18.08. 2009 v 18:04 | Vývoj softwaru, Java | Zobrazeno 3001x

Nový komentář:

V komentáře lze použít následující „tagy“:

  • [a href=http://url.com]titulek odkazu[/a] – bude převeden na odkaz
  • [abbr title=text]abbr[/abbr] – bude převeden na <abbr>.
  • [cite], [code], [em], [strong], [q], [li] — obdobně.

Komentáře musí být před publikováním schváleny. Děkuji!

Kontrola proti SPAMu

Vlož znaky zobrazené na obrázku:


Navigace

Vyhledávání

 Vyhledávání 

Povolené operátory: AND, OR a NOT

Kategorie

Nejčtenější

Poslední komentáře

  • Jirka Hradil: Ten překlad je dobrá práce, jednoduché, srozumitelné :)....
  • honza: Diky autore, ani nevis jak moc jsi mi timhle clankem pomohl. Porad mi kod nefungoval, vymyslel jsem kdeco, ale reseni...
  • Milan: [2] Místo řádku: class SampleConfigKeyNotDefinedException extends Exception má zřejmě být řádek class SampleTemplatedNotFoundException extends Exception...
  • Josef Petrák: [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...
  • havlikp: proč nepoužít excel? ;-)...

Odkazy

Statistiky návštěvnosti [TOPlist]
PageRank Checking Icon
Valid XHTML 1.0 Strict

Obsah © 2004 – 2006 Josef Petrák

Grafika © 2004 Dlouhý Webdesign

Redakční systém BLOG:CMS