مرحبًا محمد،
في البداية، يجب عليك عمل Compile للـ subreport حتى يصبح كتقرير بسيط، تستطيع استخدام هذه الطريقة:
http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JasperCompileManager.html#compileReport(java.lang.String)
بعد ذلك، تستطيع تمرير الـ subreport بعدما تمت عملية الـ Compilation إلى الـ master report، كمثال:
JasperReport jasperMasterReport = JasperCompileManager.compileReport(masterReportSource);
JasperReport jasperSubReport = JasperCompileManager.compileReport(subReportSource);
Map<String, Object> parameters = new HashMap()<String, Object>;
parameters.put("subreportParameter", jasperSubReport);
JasperFillManager.fillReportToFile(jasperMasterReport, parameters, outputFileName, connection);
الآن يمكنك عرضه او طباعته كملف jrxml، كالتالي:
<parameter name="subreportParameter" class="net.sf.jasperreports.engine.JasperReport"/>
...
<detail>
<band height="50">
...
<subreport>
<reportElement isPrintRepeatedValues="false" x="5" y="25" width="325" height="20" isRemoveLineWhenBlank="true" backcolor="#ffcc99"/>
<subreportParameter name="City">
<subreportParameterExpression><![CDATA[$F{City}]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<returnValue subreportVariable="PriceSum" toVariable="ProductTotalPrice" calculation="Sum"/>
<subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{subreportParameter}]]></subreportExpression>
</subreport>
هذه اسهل طريقة وتعتبر بدائية كذلك. إذا اردت، هناك طرق احدث توفّر امكانيات وخصائص اكثر تستطيع الإطلاع على احداها هنا:
http://jasperreports.sourceforge.net/api/net/sf/jasperreports/export/Exporter.html
أتمنى لك التوفيق