I am using iReport tool in conjunction with JasperReports 1.3.4.
I have a master report, which contain two subreports. One of these subreports has an embedded subreport. All of the .jasper files reside in the same directory.
iReport generated the parameter called SUBREPORT_DIR
. The subreportExpression expresses the subreport filename as ![CDATA[$P{SUBREPORT_DIR} + "subreport.jasper"]
.
Everything works great when the report is generated from within iReport. But, I have a small Java web appplication that I am trying to use to generate reports. I pass a "SUBREPORT_DIR"
parameter to JasperFillManager.fillReport(String sourceFileName, Map parameters, JRBeanCollectionDatasource)
. This SUBREPORT_DIR
is set to the directory in which the master report is located.
fillReport throws an exception:
net.sf.jasperreports.engine.JRException: Could not load object from location :
.sub-subreport.jasper.
It appears that the first subreport is trying to process its subreport(embedded subreport)
, but the SUBREPORT_DIR
is not being resolved, or used properly to generate the name of the sub-subreport.
Is there something I'm missing? How should this scenario be handled?
Best Answer
Click in
Subreport1
, go to theproperties tab -> Subreport properties -> Parameters
You will pass your 'MasterReport'
SUBREPORT_DIR
parameter as a parameter to 'Subreport1'. Create this entry:Name:
SUBREPORT_DIR
Expression:$P{SUBREPORT_DIR}
Don't forget to recompile your reports and make sure to republish your web app in the application server.