> A podělíš se s ostatními, Mariane? ;)
> 
> Jirka Hradil

Podelim ;)

Takze mam tieto 2 beany (obe beany maju public get metody na svoje 
atributy):
class FakturaPolozka { 
        String nazov; 
        int pocet; 
        ... // dalsie atributy 
} 
class Faktura { 
        String cislo; 
        Date datum; 
        ... // dalsie atributy 
        ArrayList<FakturaPolozka> polozky; 
}

potom som vytvoril 2 reporty:
FakturaPolozka.jrxml - ako detail
Faktura.jrxml - ako master, pricom toto je cast jeho zdrojaku:
...
<parameter name="SUBREPORT_FILENAME" isForPrompting="false" 
class="java.lang.String"/>
...
<field name="polozky" class="java.lang.Object"/>
...
<subreport  isUsingCache="true">
        <reportElement key="subreport-1"/>
        <dataSourceExpression><![CDATA[new 
net.sf.jasperreports.engine.data.JRBeanCollectionDataSource((Collection) 
$F{polozky})]]></dataSourceExpression>
        <subreportExpression 
class="java.lang.String"><![CDATA[$P{SUBREPORT_FILENAME}]]></subreportExpression>
</subreport>
...

V jave to potom pouzijem takto:
...
// kompilacia reportov
String reportFaktura = 
JasperCompileManager.compileReportToFile("Faktura.jrxml");
String reportFakturaPolozka = 
JasperCompileManager.compileReportToFile("FakturaPolozka.jrxml");
// parametre
Map params = new HashMap();
params.put("SUBREPORT_FILENAME", reportFakturaPolozka);
// datasource
 ArrayList<Faktura> faktury = new ArrayList();
...
JRBeanCollectionDataSource fakturyDataSource = new 
JRBeanCollectionDataSource(faktury);
// naplnenie reportu
JasperPrint jasperPrint = JasperFillManager.fillReport(reportFaktura, 
params, fakturyDataSource);
...

Da sa to napisat i jednoduchsie?

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

Odpovedet emailem