Vision Library+ / Data entry & tables
AF Table+
AF Table+ displays an AF table and can filter its rows by display time or attribute values.
Overview
AF Table+ displays an AF table and can filter its rows by display time or attribute values.

Watch the demo
See AF Table+ in a practical PI Vision workflow.
When to use it
Use this symbol when you need to:
- Present reference or configuration records from an AF table.
- Let operators filter table rows using the current display context.
Before you begin
- Configure an AF table with the columns the display requires.
- Confirm whether the selected table is read-only or supports writes.
Preparation
Before creating the symbol, open PI System Explorer and create the AF Tables you want to display.
The symbol supports static tables, linked CSV files, and SQL tables.
- SQL Tables
When linking SQL tables, use a database view or a dynamic query so that only the rows that need to be displayed are loaded.
The table's built-in filters operate on the client side only, so filtering data at the query level will significantly improve load performance.
For example, the query below filters the DateTime column to show only the last 30 days:

Important: The SQL decimal data type is not supported. If your table contains decimal columns, cast them to float (or another supported type) in the table link query settings.
Add and set up the symbol
- Select the symbol in the PI Vision symbol gallery.
- Add the required data sources or asset context to the display.
- Right-click the symbol and open its configuration pane.
- Configure the minimum data, range, and display settings for a useful result.
- Confirm that the symbol shows the expected data.
Use the symbol
Use the table controls to sort, filter, and, when write mode is enabled, edit supported values.
Configure the symbol
Overview and behavior
The AF Table+ symbol displays Linked AF Tables from PI System Explorer directly in PI Vision. It supports static tables, linked CSV files, and SQL tables.
Configuration
Use the Configuration pane to customise the symbol's visual style, columns, interactivity, and multi-state rules.
- Right-click the symbol and select Configure Table to open the configuration pane.
- Under Table, choose the AF Database source:
- data source: Uses the data source in position 1 for AF Table lookups. This option only works with attributes, but is recommended because the display can be migrated to other PI Vision servers.
- Custom: Lets you select a specific AF Server and AF Database. Note that displays configured in this mode cannot be migrated to another PI Vision server.
- Select the table to display by configuring the following properties:
- AF Server (custom mode only): The AF Server that hosts the database.
- AF Database (custom mode only): The AF Database that contains the linked AF Table.
- AF Table: The specific table to display, as configured in PI System Explorer.
- Under Columns, configure which columns to display and how each one appears.
- Show: Toggles visibility of the column.
- Label: Override the default column header label with a custom name.
- Alignment: Sets the text alignment within the cell - Left, Center, or Right.
- Filter (DateTime columns only): Enables time-range filtering on this column. When active, the table rows are filtered to match the current display time range.
- Number Format (numeric columns only): Specifies the display format for numeric values.
The following options are only available when the table is in Edit mode:
- Allow Edit: Controls whether this column is editable when the table is in Edit mode.
- Input Type: Select Text Input for a free-text field, or Dropdown List to restrict entries to a predefined set of values.
- Under General, configure settings that apply to the table as a whole.
- Mode: Sets the table to Read or Write mode. Write mode lets users edit and save data back to the table, but is only supported for static tables - SQL tables are read-only.
- Layout: Controls how column widths are sized. Choose from three modes:
| Manual | Columns can be resized manually and the widths are saved. |
| Fit Data | Each column is sized to fit its content. |
| Fit Table Width | Columns are stretched to fill the full table width. |
- Range Selection: Enables selecting a range of cells to copy and paste.
- Column Headers: Toggles the visibility of column header labels.
- Column Filters: Shows or hides per-column filter inputs, allowing users to filter table data interactively.

- Right to Left: Displays all table text in right-to-left reading order.
- Wrap Text: When enabled, long text wraps onto the next line; when disabled, overflow is clipped.
- Paging: Choose between paginated pages or continuous scrolling when the row count exceeds the table height.
- Auto Focus Row: When enabled, the table automatically scrolls to the first or last row after each data load.
- Under Filter, configure pre-defined filters for the table.
- Enabled: Activates or deactivates all pre-configured filters.
- Mode: Selects between Basic and Advanced filter modes (see below).
Basic filter mode
Basic mode lets you define pre-configured filter conditions. For each condition, select the column, operator, and value type. Use Custom to filter against a fixed value, or data source to filter against a live attribute value. For details on attribute filtering, see Filter table by attribute values below.
Click Add Condition to add a new filter condition.

Advanced filter mode
Advanced mode supports complex filter expressions. Examples:
ColumnInt > 5 and ColumnString == "Info"
ColumnBool == 1 or ColumnFloat >= 0.25
Each expression follows the pattern: column name, operator, value.
To filter against a data source attribute, reference it by index - '[1]' for the first data source, '[2]' for the second, and so on. Examples:
ColumnInt > ‘[1]’
ColumnString == ‘[2]’
Note: ColumnInt and ColumnString are placeholder names used in these examples - replace them with your actual column names.
- Under data source, manage the data sources attached to the symbol.
Data sources attached to this symbol are used solely for attribute value filtering. If you are not using attribute filtering, any data source can be assigned.
- Under Styles, choose from five visual themes:
| The default theme. A gray like style with white text color. | |
| The light theme. White/gray backgrounds with black text color. | |
| The dark theme. White text on black backgrounds. | |
![]() | The transparent theme. Removes all borders and backgrounds, to just show the raw text. |
![]() | The custom theme. Allows create a customized theme. |
- Custom Styles: Provides full control over background colors, foreground colors, font sizes, and borders.
- Copy/Paste Custom Style: A custom style can be copied from one table and pasted onto another. Click Copy on the source table, then select the target table and click Paste. This works across all table symbols and across different displays.

Filter table by display time range
This feature requires a DateTime column in the table. That column's values are compared against the current display time range to filter rows. To configure it:
- Confirm that the column’s data type is DateTime or Date.
- In the Columns configuration, select the column and enable the Filter checkbox.
- Set the Mode to Display Time.

Filter table by attribute values
The AF Table+ symbol can filter table rows based on live attribute values. To set up an attribute value filter:
- Drag the attribute or PI point onto the table symbol.
- In the configuration pane, under Filter, enable filtering and set the Mode to Basic.
- Click Add Condition to create a new filter condition.
- Select the column to filter by.
- Select the comparison operator.
- Set the Value Type to data source.
- For the data source, select the attribute or PI point that was dragged onto the symbol.
- The configuration pane will display the completed filter condition.

multi-state styling
The multi-state section lets you color individual cells or entire rows based on their underlying data. For each column, choose from the following multi-state styles:
- Text: colors the cell's text based on the current state.
- Fill: colors the entire cell background based on the current state.
Apply to Row: Extends the current state's color to all cells in the row.

For String columns, wildcard characters are supported. For example: Search or test*
Troubleshooting and limitations
- Check: If no rows appear, confirm the AF table name, filter expression, and selected data source.
- Check: SQL-backed tables are read-only.





