Filters
Filters restrict the data shown by a page or a visual. They can target a specific column, apply a platform expression, or group multiple sub-filters with a logical operator.
Filter
public class Filter
{
public string? Id { get; set; }
public string? IdColumn { get; set; }
public FilterFunctionType Function { get; set; }
public string? FunctionName { get; set; }
public string? LogicalOperator { get; set; }
public Expression? Expression { get; set; }
public List<string> Values { get; set; }
public bool IsGroup { get; set; }
public List<Filter>? Children { get; set; }
public ICollection<AdditionalMetadata>? AdditionalMetadata { get; set; }
}
| Property | Type | Description |
|---|---|---|
Id |
string? |
Unique filter identifier |
IdColumn |
string? |
Column this filter targets (format: TableName.ColumnName). Null for group filters. |
Function |
FilterFunctionType |
How the filter matches values |
FunctionName |
string? |
Platform-native function name (when Function = Expression) |
LogicalOperator |
string? |
For group filters: "AND" or "OR" |
Expression |
Expression? |
Formula expression for expression-based filters |
Values |
List<string> |
Explicit values for OnlySelectedValues / ExceptSelectedValues |
IsGroup |
bool |
Whether this is a logical grouping node (has Children, no direct column) |
Children |
List<Filter>? |
Sub-filters nested inside a group |
AdditionalMetadata |
ICollection<AdditionalMetadata>? |
Platform-specific extras |
FilterFunctionType
| Value | Meaning |
|---|---|
OnlySelectedValues |
Include only rows where the column value is in Values |
ExceptSelectedValues |
Exclude rows where the column value is in Values |
Expression |
Apply the formula in Expression (platform native language or SQL) |
Scope
Filters exist at two scopes:
| Scope | Location | Effect |
|---|---|---|
| Page-level | Page.PageLevelFilters |
Applied to every visual on the page |
| Visual-level | Visual.VisualLevelFilters |
Applied only to a specific visual |
Nesting example
{
"isGroup": true,
"logicalOperator": "OR",
"children": [
{
"idColumn": "Sales.Region",
"function": "OnlySelectedValues",
"values": ["North", "South"]
},
{
"idColumn": "Sales.Channel",
"function": "OnlySelectedValues",
"values": ["Online"]
}
]
}
This reads as: show data where Region IN ('North', 'South') OR Channel IN ('Online').