JasperReports Server cant find sub reports - jasper-reports

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:
the reports no longer work in studio
when you upload the main report, it no longer recognises the dependent sub reports and doesn't upload them.
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.

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:
Start off with the reports with sub reports defined as "xxx.jasper" in studio.
Deploy the main report to jasper server. It will ask you if you want to deploy the sub reports (but not their sub reports). However, it does not do it right, and we have to fix it.
Now connect to the server from studio (aka repository explorer)
Your report will be under SErvers->your server->Reports->reportname->Main.jrxml. Right click on it and select properties. Select Resource Editor Tab.
copy the Parent Folder path. e.g. /reports/myreport_files
Now go back to studio. Edit every place in all your reports and sub reports where you have "xxx.jasper" and replace them with "repo:/reports/myreport_files/xxx.jrxml"
save everything
Deploy the main report again.
in Jasper Server, find the report, right click on it and select EDIT
Click on "Controls and Resources".
Delete all the resources
Now Add back each sub report by uploading by hand each jrxml file. Make sure you give it the same name and ID ans the file, e.g. my_sub_report.jrxml
pray it works.
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

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.

Related

Is there a way to duplicate an entire report in pentaho report designer?

I am trying to re-vamp an already created report in Pentaho Report Designer and instead of starting over was hoping to duplicate the report and then make edits in the duplicated version. Is there a quick way to do this?
You have to do the normal procedure which you do for coping normal file. Copy the .prpt file and past in you machine and then open the file and start edit

Version Control with Jaspersoft Server Queries / Input Controls

As anyone who has used Jasper Reports would know, a single report in Studio does not always encapsulate everything that a report is. There are Input Controls that can exist outside of the report as well as Queries that may be responsible for populating the controls.
Jaspersoft does not make it easy to obtain and version the entities that exist outside of the normal report JRXML files that you design in Studio. As of now, the only way I've been able to even somewhat accomplish this is like so:
Create Query and Input Control in DEV environment
Export the ZIP file that Jasper generates for said Query and Control
Extract the files and blow away or hand-modify the connection information in the Data Source, because Jasper packages everything associated with an item.
Add necessary files to SCM.
ZIP files up.
Import ZIP file in to QA environment, and then Staging, and so on.
While this can be somewhat automated, it seems like anyone working with Jasper has to jump through hoops to actually version their reports. Am I missing something, or is this really just the nature of things in this space?

How to create a report in SSRS by using another report?

I Had report stateLow.rdl in my project solutions. I need to add one more report to solution named as stateHigh.rdl. The second report structure looks like stateLow.rdl with different datasets. Do I need to develop the structure from scratch or I can use existing report?
What I do is just make a copy of the report you want to clone (stateLow.rdl) using Windows Explorer or whatever and rename it to the new name (stateHigh.rdl). Then in Visual Studio, right-click the Reports folder in the Solution Explorer, select Add -> Existing item... and add the new report then edit it with my changes.

How to copy a report in SQL Server Reporting Services 2008

I have a report that I created in SQL Server Reporting Services 2008.
I now want to create a new report, that is very similar that the one I already created.
How do I do that without writing the report from scratch? Can I just copy the .rdl to a new name? How will Visual Studio "pick that up"?
Thanks!
Just one last comment on Amarundo's callout:
"Diego, that's the thing. I can right click the report (under Solution Explorer) and select copy, but can't find where to past. Or if I copy the .rdl file, I don't know how to add that to my project."
If you right-click on a report item in the Solutions Explorer, the Copy option is available. However, the Paste option never becomes visible, even when you have a report item in your clipboard. However, the object is there, and you can paste it by pressing ctrl+v.
I think it was just a UI miss on Microsoft's part.
I confess that I did not know the answer to this question, so I tried. I copied and renamed one of my reports, added it to my project, uploaded to SSRS and ran it.
Seems to be working fine, so I guess the answer is yes
[In recent versions of Visual Studio, you can simply copy and paste in the solution explorer window and rename the file there. This answer will work with older versions of VS.]
The easiest way I've found to do this:
In BIDS, after creating the original report, right click on the project or reports folder in the Solution Explorer pane and select Add -> Existing Item...
In the resulting dialog, copy and paste your first report, which will give you something similar to "Report1 Copy.rdl"
Rename the copied file to your new report name.
Select the new file again, so that this name is selected in the File name text box.
Click the "Add" button.
Yes, there is no problem with adding multiple copies of identical .rdl's. There are no unique identifiers in the .rdl file.
Easiest way is copy the required .rdl file from Reports Folder (which is in the Solution Explorer Window -> Project Dropdown List) and then right click your project name (which is on the top of the same window). Select the paste option and your project will be duplicated with the name of Copy of (copied .rdl file name).
I had been copying reports for a while. One of the copies started to have a problem with a sub-report not being able to show when the report was run. The sub-report ran fine by it's self. After looking at the XML code in the RDL, I found that next to the last line was a ReportID GUID. Most of my reports shared the same GUID, including this report and it's sub-report. After getting a fresh GUID for the sub-report the problem was cleared up.
The only process that I could find to generate a new GUID was to delete all Data Sources in the report. Then delete the ReportID line in the XML. Then re-add a Data Source, which caused the VS2010 to crash. Once VS2010 recovered I was able to re-add the Data Source, which replaced the ReportID line in the XML with a new GUID.
I was able to create a new report in VS and instead of adding a new item (.rdl) in solution explorer I added an existing item, the .rdl from the report I wanted to copy. I changed the name of the .rdl and changed the SP in the dataset and it worked like a charm.
Yes. Right click your report ending with .rdl, select copy, and then select your folder and paste with ctrl-V. You can see as Copy of yourReport
Copy the RDL file from Prod source code to the Report server
Find the REPORTS URL by opening Reporting Service Config. Manager from Start btn
Open the Report Mgr URL option from left pane – goto to the URL listed in there
Find the folder the Rpt belongs in based on you organization method, and open that folder
Click Upload File at the top, browse to the copied file – Replace/Overwrite existing
Find Report in the report list, click its dropdown, choose Manage
Choose Datasources from the left pane
Choose a Datasource that the report will use from this list
Click Apply, and double click to run the report

Crystal Report Viewer 2010

I'm using Crystal report 2010 with VS 2010, and i have 2 web projects, the first is the one that my organization works with and the second is a dummy one - this is for test only -, my problem is when dealing with charts or pictures, every thing OK in the second project, but in the first one charts and pictures are displayed very will in crystal report designer, and preview, but nothing is displayed at run time. the environment of the 2 projects are identical (the same referenced DLLs, and from the same location "Local Folder", the same binding method "Objects", the same registered and add "Keys, and Assemblies" in the web.config).
kindly, note that one of the differences between the 2 projects is that the working one was created after installing Crystal Reports 2010 for VS, and the primary one was created before the installation.
please, does any body has an idea where is the mistaken part, or where I'm i suppose to search about the malfunctioning configuration, or ...... etc.
I'm sorry to bother you all the previous period,
we discovered the issue source, it is an htppModule related to our security module, we do not know what is cause of this conflict tell now, but at least we knew the source, every thing is OK, if the registration of this httpModule removed from the web.config.
Sorry again, and most thanks.