> 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