There are 3 levels of filters in JReport:
Dataset filters are passed along to the Query Engine the same as query filters. The two levels of filters are much more efficient since only the filtered data is returned to JReport. Local filters on individual components are not passed to the Query Engine so all data is returned to JReport and the component filters out the unnecessary data. This may be very inefficient so always use dataset filters or query filters whenever possible. However if you are using stored procedures, web services and other data sources, JReport may not be able to pass the filter to the Query Engine.
The advantage of using a dataset filter instead of a query filter is that it only affects data components that use the dataset in the current report. It still passes the filter to the database but does not change the catalog thus does not affect any other reports.
For data share concern, local filters most often cannot be pushed down to the database even though the Push Down Group Query feature is enabled, thus all data is returned and JReport filters the data locally which will use a lot more computer resources. To get better performance, it is better to define the filter at the other two levels.
To add filter conditions to a table, that is to apply a local filter on a table, follow the steps below:
For a table created on a query, you can filter on any DBField in the query, or a parameter or valid formula that is in the same catalog data source as the query. For a table created on a business view, you can only filter on a group or detail object in the business view.
For a table created on a business view, you can use the special field User Name or a parameter to define the value dynamically. When the available parameters cannot meet your requirement, you can also create a local parameter to use in the filter. For the usage of parameters in filter conditions, see the example in Dynamically Filtering Queries.
To make some condition lines grouped, select them and click the Group button, then the selected condition lines will be added in one group and work as one line of filter expression. Conditions and groups together can be further grouped. To take any condition or group in a group out, select it and click Ungroup.
To adjust the priority of the condition lines, select it and click the Up or Down button.
To delete a condition line, select it and click the Delete button.
Then when you preview the table, only data satisfying the specified filter conditions are shown.
Note: The following SQL type of data cannot be filtered: Db.SQL_BINARY, Db.SQL_BLOB, Db.SQL_CLOB, Db.SQL_LONGVARCHAR, Db.SQL_LONGVARBINARY, Db.SQL_VARBINARY and Db.SQL_OTHER.