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

Odpovedet emailem