Filters Panel
The Filters panel controls which rows from the data source reach each component or page in the output. Filters are defined in the designer and evaluated at render time. They are distinct from slicers (which expose interactive controls to the report consumer) — filter panel rules are part of the report definition itself and are not visible or changeable by the end consumer.
Filter scopes
| Scope | Effect | When to use |
|---|---|---|
| Visual | Applies only to the currently selected component. Other components on the same page are not affected. | A chart focused on one discipline while the table beside it shows all disciplines. |
| Page | Applies to every component on the current page. | A page dedicated to a single package, period, or contractor. |
| Report | Applies to the entire output across all pages. | Global constraints like project scope, reporting period, or organisation. |
Adding a filter rule
- Select the scope (Visual, Page, or Report) in the Filters panel.
- Click + Add filter.
- Select the Field to filter on.
- Select the Operator.
- Enter or select the Value (static, parameter, or field reference).
- Add additional rules and set the logic (AND / OR) between them.
Filter operators
| Operator | Applies to | Description |
|---|---|---|
| Equals | Text, Number, Date, Boolean | Exact match. |
| Not equals | Text, Number, Date | Excludes exact match. |
| Greater than | Number, Date | Value is strictly greater. |
| Greater than or equal | Number, Date | Value is greater or equal. |
| Less than | Number, Date | Value is strictly less. |
| Less than or equal | Number, Date | Value is less or equal. |
| Between | Number, Date | Value falls within a min–max range (inclusive). |
| Not between | Number, Date | Value falls outside a min–max range. |
| Is blank | All types | No value present. |
| Is not blank | All types | A value is present. |
| Contains | Text | Substring match (case-insensitive). |
| Does not contain | Text | Excludes substring match. |
| Starts with | Text | Text begins with the prefix. |
| Ends with | Text | Text ends with the suffix. |
| In list | Text, Number | Matches any value in a comma-separated list. |
| Not in list | Text, Number | Does not match any value in a list. |
| Is before | Date | Date is earlier than the specified date. |
| Is after | Date | Date is later than the specified date. |
| This period | Date | Date falls within the current reporting period (relative). |
| Last N periods | Date | Date falls within the last N calendar periods. |
AND / OR logic
Multiple rules within the same scope are combined with:
| Logic | Behaviour |
|---|---|
| AND | All rules must be satisfied for a row to be included. |
| OR | Any one rule being satisfied includes the row. |
Mixed AND/OR logic is supported using rule groups:
- Create a rule group to nest rules with different logic inside a parent rule.
- E.g., (Status = "Active" OR Status = "In Progress") AND Discipline = "Civil".
Filter values: static vs. parameter
| Value type | When to use |
|---|---|
| Static value | The filter value never changes between report runs (e.g., Status = "Approved"). |
| Parameter | The filter value is provided at runtime by the report consumer or by a parent template. Use {ParameterName} as the filter value. |
| Field reference | The filter value is derived from another field in the data source (e.g., filter activities whose finish date is before the project's data date field). |
Page vs. visual scope interaction
Page-scope filters are applied first, then visual-scope filters are applied on top. A visual-scope filter cannot show data that was already excluded by a page-scope filter.
To show a component that displays all data while the rest of the page is filtered:
- Apply the restrictive filter at page scope.
- On the "all data" component, add a visual-scope filter that overrides by setting the condition to "is not blank" on the key field (effectively showing all records).
Note: Visual scope filters narrow further — they cannot expand beyond what page scope allows.
Good practice
- Use the narrowest scope that achieves the filtering goal. Report-scope filters affect everything; use them only for constraints that genuinely apply everywhere.
- Use parameters for any filter value that changes between report periods (e.g., reporting month, project reference).
- Test filter combinations with real edition data to confirm the expected rows are included.
- Document applied report-scope filters in a report assumptions section so consumers understand the data scope.
Related
- Slicers and Filters Component — interactive filter controls for consumers
- Parameters and Calculated Fields — using parameters as filter values
- Fields and Build Panel — data section overview