Reputation: 1180
I created a jasper report using iReport with 3 subreports which works perfectly in the iReport designer, but when i call the main jrxml with Java like so
JasperReport jasperReport = JasperCompileManager.compileReport("C:\\jasperFiles\\main.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, connect);
JasperViewer.viewReport(jasperPrint);
i get an error: (All files, main.jrxml/.jasper, and subreport files both .jrxml & .jasper are in the same directory)
ERROR MESSAGE:
net.sf.jasperreports.engine.JRException: Resource not found at : main_personal_details.jasper
My main.jrxml(which is working perfectly in iReport)
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="main" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="a7db71b8-8789-45e2-a322-24a2d664325c">
<parameter name="memberId" class="java.lang.Integer"/>
<parameter name="month" class="java.lang.String"/>
<parameter name="year" class="java.lang.String"/>
<queryString>
<![CDATA[SELECT 1]]>
</queryString>
<field name="1" class="java.lang.Long"/>
<title>
<band height="71" splitType="Stretch">
<staticText>
<reportElement uuid="68c7bfae-7a3d-441e-ae30-6d18f9b957e4" x="0" y="0" width="555" height="25"/>
<textElement>
<font size="18" isBold="true"/>
</textElement>
<text><![CDATA[Test Subreport]]></text>
</staticText>
</band>
</title>
<detail>
<band height="93" splitType="Stretch">
<staticText>
<reportElement uuid="ca4ee210-2997-494d-a33d-1e6811941ac9" x="0" y="0" width="191" height="20"/>
<textElement>
<font fontName="Times New Roman" size="12" isBold="true"/>
</textElement>
<text><![CDATA[PERSONAL DETAILS]]></text>
</staticText>
<subreport>
<reportElement uuid="f850bec8-0aee-4c6e-a57e-606db1e318ca" x="100" y="20" width="455" height="66"/>
<subreportParameter name="memberId">
<subreportParameterExpression><![CDATA[$P{memberId}]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression><![CDATA["main_personal_details.jasper"]]></subreportExpression>
</subreport>
</band>
<band height="131">
<staticText>
<reportElement uuid="b503e7a0-fb52-4985-ba75-c915d0539410" x="0" y="0" width="555" height="26" backcolor="#C0C0C0"/>
<textElement verticalAlignment="Middle">
<font fontName="Times New Roman" size="12" isBold="true"/>
</textElement>
<text><![CDATA[MILK COLLECTION DETAILS]]></text>
</staticText>
<subreport>
<reportElement uuid="b8d60dc1-10da-4ef8-8ee0-04a9f1131216" x="100" y="26" width="455" height="100"/>
<subreportParameter name="month">
<subreportParameterExpression><![CDATA[$P{month}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="year">
<subreportParameterExpression><![CDATA[$P{year}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="memberId">
<subreportParameterExpression><![CDATA[$P{memberId}]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression><![CDATA["main_subreport1.jasper"]]></subreportExpression>
</subreport>
</band>
<band height="125">
<staticText>
<reportElement uuid="7c17a8dc-eea4-47e2-9ba8-9bcdd68f31c2" x="0" y="3" width="555" height="24" backcolor="#C0C0C0"/>
<textElement verticalAlignment="Middle">
<font fontName="Times New Roman" size="14" isBold="true"/>
</textElement>
<text><![CDATA[DEDUCTIONS]]></text>
</staticText>
<subreport>
<reportElement uuid="cf920e0e-ce30-46a4-a491-c687f80940d9" x="100" y="27" width="455" height="97"/>
<subreportParameter name="month">
<subreportParameterExpression><![CDATA[$P{month}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="year">
<subreportParameterExpression><![CDATA[$P{year}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="memberId">
<subreportParameterExpression><![CDATA[$P{memberId}]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression><![CDATA["main_deductions.jasper"]]></subreportExpression>
</subreport>
</band>
</detail>
Please help me to be able to call this report template in Java code and pass parameters accordingly.
Upvotes: 1
Views: 3547
Reputation: 1157
set "SUBREPORT_DIR" property under "subreport" tag in "main.jrxml" like below
<parameter name="SUBREPORT_DIR" class="java.lang.String"
isForPrompting="false">
<defaultValueExpression>
<![CDATA["C:\\tools\\jasperreports-5.0.1\\test\\"]]>
</defaultValueExpression>
find the complete code here.
http://www.tutorialspoint.com/jasper_reports/jasper_create_subreports.htm
Upvotes: 1