Using Parameters in JasperReports
By: MakeItSimple. Printer Friendly Format
Parameters are object references that are passed-in to the report filling operations. They are very useful for passing to the report engine data that it can not normally find in its data source.
For example, we could pass to the report engine the name of the user that has launched the report filling operation, if we want it to appear on the report, or we could dynamically change the title of our report.
An import aspect is the use of report parameters in the query string of the report, in order to be able to further customize the data set retrieved from the database. Those parameters could act like dynamic filters in the query that supplies data for the report.
Declaring a parameter in a report design is very simple and it requires specifying only its name and its class:
<parameter name="ReportTitle" class="java.lang.String"/>
<parameter name="MaxOrderID" class="java.lang.Integer"/>
<parameter name="SummaryImage" class="java.awt.Image"/>
There are two possible ways to use parameters in the query:
1. The parameters are used like normal java.sql.PreparedStatement parameters
using the following syntax:
2. Sometimes is useful to use parameters to dynamically modify portions of the
SQL query or to pass the entire SQL query as a parameter to the report filling
routines. In such a case, the syntax differs a little, like in the following
example:
SELECT * FROM Orders ORDER BY $P!{OrderByClause}