To create a parameter in a catalog, follow the steps below:
The New Parameter dialog appears.
If the parameter is of Date, DateTime, or Time type, you can also click the calendar button to set a date and time value using either calendar or built-in formula functions.
To adjust the order of the values, click or
; to remove any unwanted value, select it in the list and then click
.
JReport provides a mechanism that links each value of the display field with the exact value of the bound field for a parameter, thus when you select a value of the display field, the value of the bound field is actually sent to the query and filters the query result. This can help you bind the parameter to a DBField in order to provide a list of values for end users to select at runtime which probably makes more sense. The selected value of the bound field will be used as the parameter value. For example, it might be confusing if you provide a list of customer ID numbers for users to select at runtime, since the ID numbers would probably mean nothing to them. In cases like this, it is better for you to display values of other fields, which would make more sense. For this case, you might prefer to display customer names instead of ID numbers. When the report end users select a customer name from the list, its ID number is passed to the query as the parameter value so that the search criteria can be fulfilled. See Binding a Parameter to a DBField for an example.
To adjust the order of the parameters, click or
; to remove any unwanted parameter from the cascading group, select it and then click
.
Notes:
JReport provides you with many properties to customize a parameter according to how the parameter will be used. For example, you can specify whether a parameter is a required parameter, define the prompting text which can be a guidance for the report end users to provide a meaningful value.
The following table lists the properties available for customizing a parameter in the parameter dialog. More properties can be accessed in the Catalog Manager Properties sheet.
Option Name | Description |
---|---|
Prompt Text | Specifies the text for prompting users to provide the value of the parameter.
Tips:
|
Minimum Value/Length | Specifies the minimum value allowed for the parameter. If the parameter value type is String, this option is defined as Minimum Length, which means that you can set the minimum allowed length of the string. |
Maximum Value/Length | Specifies the maximum value allowed for the parameter. If the parameter value type is String, this option is defined as Maximum Length, which means that you can set the maximum allowed length of the string. |
String Encoding | Specifies the encoding for the parameter. Available only when the parameter's data type is defined as String. |
User Defined Format | For certain types of parameters, the value format supplied by JReport may not satisfy your requirement. In this case, you can define your own preferred format. When you have defined the value format, all the values supplied for the parameter at runtime should be based on it, otherwise there will be an error message. For details about how to define a user format for different types of parameters, see User Defined Format for Parameters.
Notes:
|
Required | Specifies whether or not the parameter will be treated as a required one.
A required parameter must be fulfilled, which means that you must supply a value for the parameter before the report can be run. When the property is false, the parameter will be treated as an optional parameter. An optional parameter can be left blank, which means you can either type a value, or leave it as it is.
In the dialog for specifying the parameter value, the prompt text of a required parameter will be marked with a * sign. Note: If the parameter is optional and you do not expect it to take effect in your report, in the dialog for specifying the parameter value, clear the content in the value text box. Any value left in the field will function in reports. |
Hide Parameter When Single Value Returned | When a parameter is bound with a column, you can choose to hide the parameter at runtime when only a single value is returned for the parameter, and the returned single value will be used as default value of the parameter.
This can be very useful for security. For example, you could use a parameter bound with a DBField such as UserID and if there is one to one mapping of UserID to the JReport login users, then a query for a parameter such as SELECT UserID FROM Employees WHERE UserID = @username would just return a single value and thus could be used as a filter for any other queries you create. |
Allow Multiple Values | Enables multiple values to be selected for the parameter. Multi-valued parameters can be used in dataset filters, query filters, imported SQL files, and subreport/link report conditions. A multi-valued parameter can also be displayed in a report by using the join() function. |
Enable the "All" Option | Available when Allow Multiple Values is true. Its default value is true which will display the "All" option in the dialog for specifying multiple values for the parameter. |
Scope of All Values | Available when Enable the "All" Option is true. It defines the meaning of the "All" option.
JReport has two ways to get all values of a parameter. One is to get all values in the database, which is fast but has strict requirements on the parameter; the other is to get all available values as provided in the dialog for specifying the parameter values.
|
Treat Blank as Null | Available when the parameter's data type is String. If it is true, the parameter value will be null; if false, the default parameter value is "". |
Use Current Date-Time | Available when the parameter's data type is Date, Time or DateTime. If it is true, the current date time in your system will be used as value of the parameter. |
Use Current Date-Time When Blank | Available when the parameter's data type is Date, Time or DateTime. If it is true, when the value of the parameter is blank, the current date time in your system will be used as value of the parameter.
If you want to get parameter value dynamically from the system's date time, you need to make sure your system's DateTime format is set to yyyy-MM-dd H:mm:ss as it is the only format JReport supports; otherwise, you need to make use of the User Defined Parameter Format feature. Also, if one of the two options is enabled, you need to provide the parameter's prompt value according to the data type of your parameter.
|
Record Level Security | When a parameter is bound with a column, you can specify a RLS policy defined on the bound column to the parameter, then at runtime the specified security identifier will see the records it is allowed to view in the parameter value drop-down list. See Applying RLS to a Parameter for an example. |
Sort | Specifies how to sort values of cascading parameters.
|
Distinct | If set to true, in the dialog for specifying the parameter value, identical values will appear only once and no duplicate values will be listed. |
Import SQL | Displays the SQL statement for retrieving values of the bound column and display column. You can edit the statement if required. To do this, click in the value cell, then click ![]() Notes:
|
Allow Type-in of Value | Specifies whether to enable typing values in addition to selecting values when specifying the parameter value at runtime. The property is enabled for Type-in Parameter by default. |
When Out of Value Range | Specifies how JReport will respond if the typed value is out of the predefined value list. The property is enabled only when the option Allow Type-in of Value is set to true.
There are three solutions as follows:
Note: For a multi-value parameter, if one of the input values is not in the value list, the whole input result will be treated as out of range. |
Get Value from API Only | Specifies whether the parameter values can be input via GUI or not.
If true, the parameter values should only be obtained from API and there will be no parameter dialogs available on any JReport Designer or Server GUI for inputting values. Users will have to give the values of the parameter by API such as URLs, coding, and sessions, otherwise the default value will be used. If false, the parameter can be obtained from both GUI and API. If a member of a cascading parameter group is set to get values from API only, it means that all the higher level members shall get values from API only. This also applies to parameters on which other parameters depend. If in JDashboard several parameters share values, when any of them is set to get values from API only, they will share the values from API. |
On Parameter Value Change | Specifies to define an action that will be called when the parameter value changes. Choose a formula from the drop-down list to develop an action, which will be called before the other actions defined in the report or library component. It can work as a parameter value validation rule. |