Ahoj, odpovídám na zprávu ze středy, 20. prosince 2006, kterou Petr Michálek napsal(a) v 22:45:11:
A nešlo by každý report vyplnit samostatně a pak všechny tří slepit dohromady, tedy vygenerovat jedno PDF? --------------------------- Původní zpráva --------------------------- Odesilatel: Petr Michálek <[EMAIL PROTECTED]> Předmět: JasperReports a 3 tabulky Datum: 20. prosince 2006, 22:45:11 (GMT +0100) Přílohy: <none> msgid:[EMAIL PROTECTED] P> [EMAIL PROTECTED] napsal(a): >> > Hi Marian, >> > >> > já v těhle případech používám subreporty a "masterreport" definuju >> > zhruba takto: >> > >> > <field name="tablemodel" class="javax.swing.table.TableModel"></field> >> > <field name="subreport" >> > class="net.sf.jasperreports.engine.JasperReport"></field> >> > >> > >> > <detail> >> > <band height="10" isSplitAllowed="true"> >> > <subreport isUsingCache="false"> >> > <reportElement positionType="FixRelativeToTop" mode="Transparent" >> > x="0" y="0" width="505" height="9"/> >> > <dataSourceExpression><![CDATA[new >> > net.sf.jasperreports.engine.data. >> > JRTableModelDataSource($F{tablemodel})]]></dataSourceExpression> >> > <subreportExpression >> > class="net.sf.jasperreports.engine.JasperReport"><! >> > [CDATA[$F{subreport}]]></subreportExpression> >> > </subreport> >> > </band> >> > </detail> >> > >> > Tato varianta predpoklada "tablemodel" jako datasource pro "subreport". >> > >> > Petr Michálek >> Az teraz som sa k tomu dostal :( >> Takze ak potrebujem vytvorit 3 rozdielne tabulky, tak to spravim >> priblizne takto?: >> <field name="dsA" class="sk.gamo.mojprojekt.tabA"></field> >> <field name="srA" class="net.sf.jasperreports.engine.JasperReport"></field> >> <field name="dsB" class="sk.gamo.mojprojekt.tabB"></field> >> <field name="srB" class="net.sf.jasperreports.engine.JasperReport"></field> >> <field name="dsC" class="sk.gamo.mojprojekt.tabC"></field> >> <field name="srC" class="net.sf.jasperreports.engine.JasperReport"></field> >> <detail> >> <band> >> <subreport isUsingCache="false"> >> <dataSourceExpression><![CDATA[new >> net.sf.jasperreports.engine.data.JRTableModelDataSource($F{dsA})]]></dataSourceExpression> >> >> <subreportExpression >> class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$F{srA}]]></subreportExpression> >> >> </subreport> >> </band> >> <band> >> <subreport isUsingCache="false"> >> <dataSourceExpression><![CDATA[new >> net.sf.jasperreports.engine.data.JRTableModelDataSource($F{dsB})]]></dataSourceExpression> >> >> <subreportExpression >> class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$F{srB}]]></subreportExpression> >> >> </subreport> >> </band> >> <band> >> <subreport isUsingCache="false"> >> <dataSourceExpression><![CDATA[new >> net.sf.jasperreports.engine.data.JRTableModelDataSource($F{dsC})]]></dataSourceExpression> >> >> <subreportExpression >> class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$F{srC}]]></subreportExpression> >> >> </subreport> >> </band> >> </detail> >> Ako to potom pouzijem v Jave? >> Ako priradim srA az srC ake jrxml sa ich tykaju? P> Pokud by výše uvedený report byl validní, předal bych potrebne udaje P> jako parametr reportu HashMap<String, Object>. P> Chyba Tebou navrhovaneho prikladu spociva v tom, že <detail> se volá při P> každé iteraci DataSource a může mít pouze jeden <band> >> Marian Stevlik (Michal) >> IS programmer / developer >> GAMO a.s. >> Kyjevske nam. 6 >> 974 04 Banska Bystrica >> web: www.gamo.sk >> mail: [EMAIL PROTECTED] >> gsm: +421 905 462010 >> icq: 38493645 >> skype: majklbb P> NE! Myslim, ze vyse uvedeny priklad neni validni. P> - Navrhoval jsem iteraci pres tablemodel (např. "MASTER". Table model je P> datasourde reportu). P> - Kazdy row tablemodelu obsahuje subreport P> (class="net.sf.jasperreports.engine.JasperReport") a tablemodel P> (class="javax.swing.table.TableModel") P> Jasperreport vygeneruje 1..n radku (detail) a v kazdem radku zobrazi P> subreport a data, ktere jsou predany v radku "tablemodel"u. P> Java kod bude vypadat zhruba takto: P> JasperReport subreport_detail = ...; P> JasperReport subreport_summary = ...; P> Vector<String> tableColumns = new Vector<String>(); P> tableColumns.add("tablemodel"); P> tableColumns.add("subreport"); P> Vector<Vector<Object>> summaryData = new Vector<Vector<Object>>(); P> DefaultTableModel tableModel = new DefaultTableModel(tableColumns, 0); P> Vector<Object> row; P> row = new Vector<Object>(); P> row.add(createTableModel_Details(...)); P> row.add(subreport_detail); P> tableModel.addRow(row); P> row = new Vector<Object>(); P> row.add(createTableModel_Summary(...)); P> row.add(subreport_summary); P> tableModel.addRow(row); P> JRTableModelDataSource dataSource = new P> JRTableModelDataSource(tableModel); P> JasperPrint p = JasperFillManager.fillReport(is, params, dataSource); P> Petr Michálek ------------------------ Konec původní zprávy ------------------------ -- --------------------------------------------------------------------- Tomáš Procházka E-mail: [EMAIL PROTECTED] WWW: http://atom.sf.cz ICQ: 87147320 ---------------------------------------------------------------------