Reputation: 12343
I have a main report which calls a sub report which calls another sub report.
I have all 3 in a dir called dash2 in report studio.
When I use report studios deployment to *JasperReports Server * on the main report, it also seems to deploy the first sub report (but not the sub sub report). Well, If I right click on the report and select edit, then Controls and Resources, it lists the sub report.
If i manually deploy all 3 reports one by one, I see all three in the report folder in Jaspersoft Studio. However, if I try to run the main report, I get:
Error filling report
net.sf.jasperreports.engine.JRException: Resource not found at : dash2/dash-kpi.jasper
So its looking for the sub report in dash2. So I created a dir called dash2 under the main report folder, and copied the sub reports into it. Same error. So I manually reproduced the same structure as in report studio -no joy. It can never find the sub report.
In the main report, it has this entry:
<subreportExpression><![CDATA["dash2/dash-kpi.jasper"]]></subreportExpression>
Any ideas how to fix?
It works fine in report studio.
Edit: tried removing the "dash2/" from in front of the resource name. didn't help.
Edit2: tried chaing all occurunces of dash2/xxx.jasper to repo:xxx.jrxml. This breaks jasper studio in that:
I tried manually deploying all reports, but there is no way to link a main report with an existing sub report in jasper server. The only option they offer is to edit the main report, and manually upload the jrxml files as resources. I tried this, but didn't help, still cant find them:
Repository file resource /reports/dashboard_files/dash_kpi.jrmxl could not be loaded
Interestingly, its using a dir called dashboard_files which doesnt exist. There is no reference to this dir in any of the reports jrxml files.
Upvotes: 1
Views: 6195
Reputation: 1
I have overcame this problem by simply NOT using the onServer parameter. Should you put just the file name, the Studio can grab this file and deploy it automatically. Strangely enough, this works on the server as well.
Upvotes: 0
Reputation: 12343
After much pain, I found a solution. It seems that jasper studio is not really good with nested sub reports. Here is a solution at a high level, which applies to server 5.6 and Studio 5.6 at least:
NOTE 1: if you have any "-" in your subreport names, they will be converted to "", and it wont find them. rename all your subreports with "-" to use "" insead, remove and re-deploy.
NOTE 2: Now your reports wont work in studio. Nice one Jasper. You can try using parameters, e.g:
$P{IsOnServer} ? "repo:/reports/myreport_files/my_sub.jrxml" : "my_su.jasper"
And create the parameters defaulting to true, but I could not get this to work.
Main credit to these guys:
http://notsomany.wordpress.com/2011/11/07/subreports-within-ireport-jasper-reports-server/
Linking subreports in iReport so they also work in Jasper server
Upvotes: 2