Global variable in iReport - Jasper subReports - jasper-reports

Anyone know if we can set a global variables in a main report and have the sub-reports use those variables ?
In my case i have a very complicated report (Main report and then few sub-reports then in those sub-reports...other sub-sub-reports (3-5 levels like that).
Now it came to my attention that i need to pass a new variable from user input and this variable need to be used by multiple sub reports .
I know i can pass variables from Main to sub to other subs but this is a long process which i'm trying to avoid .
Any ideas ?
Thanks for the help!

In your main report create a paramter; lets say it's $P{main_parameter}
In a subreport create another paramter to handle $P{main_parameter}'s value; let it be $P{subreport_parameter}
now in mainreport you have $P{main_parameter}
and in subreport you have $P{subreport_parameter}
finaly; in your mainreport right click on the subreport ->paramters -> add. That's it. Now you can pass parameter from main report to subreport.
Not: be careful both paramters' type should be same otherwise you will get error

Related

CR2008 Suppressed SubReport's parameters are showing on main report

I am a very new user to crystal and have taken over a project that someone else has done and left.
Here is my current issue. I have a Main report that has a ton of sub reports on it. There is one sub-report that is suppressed that is causing a parameter prompt on the main report. I have looked through documentation about the links from main to sub but there is no link between these sub-report parameters and the main report. Also the sub report uses these parameters in the report itself. IE start date - end date are the parameters and are used on the sub report so I can't just remove them. How can I stop the prompt for these two parameters from the sub-report in the main report?
Thanks a Ton.
In the end I created a new report and just did not include the sub report mentioned. Thanks.

How to dynamically order subreports in main report(jasper report)

Suppose,One main report can have 9 sub-reports.
Then user can have UI from which user can order the sub-report according to his/her choice.(like,which sub-report should be displayed first and which is next and so on).
SO,how can i achieve this ?
Follow the below steps to achieve your requirements
Create 9 parameters say, reportpath1,reportpath2,reportpath3,....reportpath9.
Prompt user to enter the order of the reports. Based on the order pass the respected report path to every parameter.
Meaning, if subreport9 is selected as 1st report, then pass the path of that subreport9 as reportpath1, if subreport8 is selected as 2nd report, then pass the path of that report as reportpath2 and so on
For example, if path of subreport9 is "report/samples/subreports/subreport9", then set parameter reportpath1 value as "report/samples/subreports/subreport9". If path of subreport8 is "report/samples/subreports/subreport8", then set paramter reportpath2 value as "report/samples/subreports/subreport8" and so on.
In report design, create 9 subreport and instead of hard-coding the path of each report, pass parameter in subreportexpression as below
For subreport1,
<subreportExpression><![CDATA[$P{ReportPath1}]]></subreportExpression>
For subreport2,
<subreportExpression><![CDATA[$P{ReportPath2}]]></subreportExpression>
and so on.
Hope this should solve your problem.
Answer for getting variable from subreport
Right click on subreport in Parent report.
Go to Properties
Under Subreport session, click "Return values"
Add the subreport variable and map it to the parentreport variable.
Then use that parentreport variable in your parent report.
Hope this should solve your another problem.

Jaspersoft studio summary and subreport

I have a problem with jaspersoft studio, the problem is that I want to put the Subreport on the very last page in the document. So my idea was to put it in the summary, but then I got something strange...At the end of the PDF generation the subreport is on the last page, BUT the sub report is not complete there is stuff missing :/ It is just printing out the last values
Consider the following example:
I have 3 Parts, Part-1, Part-2, Part-3
After finishing the part-3 the subreport should be visualize with some of the information of part 1-3, but the subreport in the summary just contains information from the part 3
I use a XML Datasource
Can anyone help me, please?
You have to think of the context of the summary band and the sub report.
Is a variable from part 1 and part 2 being passed to the sub report? Is the same variable being passed from part 3? If so then it is being overwritten.
It really depends on the source of the information for the sub report, but the timing and context are likely the culprits here. You may need to create three sets of variables to contain what you want or just pass something into the sub report and let it gather the information for the three parts on its own.

Crystal Reports - Link subreport parameter without field

I have a subreport with several parameters.
The main report also has some parameters.
The subreport parameters are prompting when you run the main report...
All the parameters for both sub and main prompt at the same time.
Is there a way to get the subreport params to just prompt once you get to the subreport?
I have tried linking the subreport...
The problem is there are no fields to link to in the subreport.
The params for the subreport just point to start and end date formulas.
Any ideas?
Link the parameters of the sub report with parameters or fields of the main report... Coming to prompting the parameters when sub report is opened to the extent I know that is not possible but I would suggest you to try Ondemand subreport once.

How to pass the parameter from one subreport to another subreport

I am newbie and I'm designing my report using iReport 4.5.
I have a main report (MainReport) and three subreports (Sub1, Sub2, Sub3)
In Sub1 I have three summary variables say presentPayable, presentPayment, balance
In Sub2 I have one summary variable say totalCost
I need to use the summary variables of Sub1, Sub2 in my Sub3.
How can I do this? Is this possible to pass the variables from one subreport to another?
Otherwise please provide me any alternate to do this.
To pass a value from a subreport to its parent, the parent must first have a variable to receive the value. In your case the main report should have 4 variables, one each for presentPayable, presentPayment, balance, and totalCost.
Next you need to add a returnValue element to the subreport element in the main report. This element maps a variable in the subreport to a variable in this report using the attributes subreportVariable and toVariable.
To do this in iReport, click on your subreport element in the main report. In the properties list, click on Return Values. A dialog should appear. Click on the Add button. Type the name of the subreport variable and select the variable in this report that you would like it to be transferred to. You should leave the calculation type as "Nothing", which will instruct jasper to simply overwrite the variable with the new value. Click Ok to add this, then repeat for the other variables/subreports.
Now when you run the report, each time the subreport has completed processing, the current value of the variable in the subreport is passed back to the specified variable in the main report.
To use that value in another subreport, you need to pass the variable from the main report to the other subreport as a parameter. This has two parts: Adding a subreportParameter to the subreport element in the parent report, and adding a parameter to the subreport itself.
In iReport, click on your subreport element in the main report. In the properties list, click on Parameters. In the dialog that appears, click the Add button. Give the parameter a name (e.g. presentPayable) and input a value expression that references the variable in your main report (e.g. $V{presentPayable}). Repeat this for each of the variables that you want to pass in.
Next, open your subreport. In the report inspector, right-click on Parameters. Select Add Parameter, then rename the new parameter to match the name you entered in the previous step.
In the subreport, you should now be able to reference these values like any other parameter (e.g. $P{presentPayable}).