My problema es que quiero utilizar subreporte con JavaBeans.
Al llamar al reporte directamente me anda lo mas bien pero cuando lo quiero usar como sobreporte me muestra todo en blanco. Ya busque y busque y lo que me pareció mas prometedor es esto
Código XML:
Ver original<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="15"/>
<parameter name="DataSurse" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<parameter name="SubReport" class="net.sf.jasperreports.engine.JasperReport"/>
<parameter name="Nombre" class="java.lang.String"/>
<parameter name="Rut" class="java.lang.Long"/>
<parameter name="Tel" class="java.lang.String"/>
<parameter name="Cel" class="java.lang.String"/>
<parameter name="Dir" class="java.lang.String"/>
<parameter name="Fecha" class="java.util.GregorianCalendar"/>
<parameter name="Num_Factura" class="java.lang.Integer"/>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="802" splitType="Stretch">
<subreport>
<reportElement x="17" y="52" width="557" height="450"/>
<subreportParameter name="Dir">
<subreportParameterExpression><![CDATA[$P{Dir}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="Fecha">
<subreportParameterExpression><![CDATA[$P{Fecha}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="Rut">
<subreportParameterExpression><![CDATA[$P{Rut}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="Cel">
<subreportParameterExpression><![CDATA[$P{Cel}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="Nombre">
<subreportParameterExpression><![CDATA[$P{Nombre}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="Num_Factura">
<subreportParameterExpression><![CDATA[$P{Num_Factura}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="Tel">
<subreportParameterExpression><![CDATA[$P{Tel}]]></subreportParameterExpression>
</subreportParameter>
<dataSourceExpression><![CDATA[$P{DataSurse}]]></dataSourceExpression>
<subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{SubReport}]]></subreportExpression>
</subreport>
</band>
Y el codigo de Java es el siguiente
Código Javascript
:
Ver originalç
JasperReport masterReport = (JasperReport) JRLoader.loadObject(new File ("ContenedorFactura.jasper"));
JasperReport SubReporte = (JasperReport) JRLoader.loadObject(new File ("Factura.jasper"));;
Map parametro = new HashMap();
LogN_ClassAb_Persona ObjPer = xObjFac.getPersona();
String Tel = "";
ArrayList ColT = ObjPer.getmColTel();
if (ColT.size() != 0)Tel = ColT.get(0).toString();
String Cel = "";
ColT = ObjPer.getmColCel();
if (ColT.size() != 0)Cel = ColT.get(0).toString();
GregorianCalendar Fechca = new GregorianCalendar();
Fechca.setTime(xObjFac.getFech());
parametro.put("Nombre", ObjPer.getmRasSos());
parametro.put("Rut", ObjPer.getmNumDoc());
parametro.put("Tel", Tel);
parametro.put("Cel", Cel);
parametro.put("Dir", ObjPer.getmDir());
parametro.put("Fecha", Fechca);
parametro.put("Num_Factura", xObjFac.getNum());
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(xObjFac.getmColLinF());
parametro.put("DataSurse", ds );
parametro.put("SubReport", SubReporte);
JasperPrint jasperPrint = JasperFillManager.fillReport(masterReport, parametro, ds);
JasperPrintManager.printReport(jasperPrint, false);
Agradezco cualquier ayudo o orientación