Functional explanation
ListBoxObject displays a visible list of items instead of a collapsed dropdown. It is useful when the operator needs to compare several items at the same time.
The object is practical when the available options should remain visible without opening a menu first. It can be used for selections, filters, or compact overview lists where more than one item must be easy to inspect.
Use it where the page has enough height and the list should stay visible.
Object name
Set the object name shown in the list box decorator context.
| Setting | Description | Example | Units |
|---|---|---|---|
| Object Name | Name used to identify the List Box object. | RecipeList | Text |
No rows match the filter.
Variable / Expression
Configure the variable or expression bound to the selected value.
| Setting | Description | Example | Units |
|---|---|---|---|
| Variable / Expression | Variable or expression bound to the selected value. | PLC1.SelectedRecipe | Expression |
No rows match the filter.
Settings
Configure the item list, multi-select behavior, and styling for the list box.
| Setting | Description | Example | Units |
|---|---|---|---|
| Items | Semicolon-delimited list of visible item texts. | Auto;Manual;Off | Text list |
| Values | Semicolon-delimited list of values corresponding to the items. | 0;1;2 | Value list |
| Multi Select | Allows multiple selections when true. | false | Boolean |
| Color Picker | Text color used for the list box. | #212529 | Color |
| Background Color Picker | Background color used for the list box. A gradient can be used here as well as a single color; see the Gradients section of the Color Library article. | #FFFFFF | Color |
| Border Color Picker | Border color used for the list box. | #ced4da | Color |
| Selected Background Color | Background color used for selected items. | #0d6efd | Color |
| Selected Text Color | Text color used for selected items. | #FFFFFF | Color |
| Scrollbar Color | Scrollbar color used for the list box. | #adb5bd | Color |
| Scrollbar Track Color | Scrollbar track color used for the list box. | #f8f9fa | Color |
No rows match the filter.
Documents in a folder
Instead of a fixed item list, the object can show the documents that are present in a folder. Set Item Source to Documents in a folder and fill in Folder; the Items and Values settings are then no longer used. The object reads the folder each time the operator opens the list, shows the label chosen under Item Label, and writes the full path of the selected document to the bound variable.
Point the Document Path of a Document Viewer at that same variable and the operator selects a document and reads it on the same page. A document that was created while the page was open appears the next time the list is opened.
The folder must be listed under Document viewer access in Engineering Settings for one of the operator's user groups, the same rule that decides what the Document Viewer may show. Only the file types the Document Viewer serves are listed, and sub-folders are not included.
| Setting | Description | Example | Units |
|---|---|---|---|
| Folder | Folder whose documents are listed. Accepts a full path or the name of a variable holding one. | D:/Reports | Text |
| Pattern | Filters by file name and declares where the date sits. * and ? are wildcards; the tokens %Y, %y, %m, %d, %H, %M and %S state the date and time positions. Leave empty to list every document, in which case the documents carry no date. The field also accepts the name of a variable holding the pattern; the Pattern button opens the variable list. | Daily_%Y-%m-%d.pdf | Text or variable |
| From | Oldest document date to list. Accepts a date, a date and time, or the name of a variable holding one, which is normally a client variable written by a DateTimePicker. Inclusive, and optional. | client.FromDate | Text |
| To | Newest document date to list, with the same rules as From. A value with no time covers the whole day. | client.ToDate | Text |
| Item Label | What the operator reads for each document: File Name, Date, or Date and Time. The value behind the label is always the full path. | Date | Selection |
| Status | Client variable receiving the state of the list: ok, empty, unavailable, or signin. Use it to show a message of your own when no document is offered. | client.DocumentStatus | Text |
No rows match the filter.
Pattern filters the list by file name and is also the only place a document's date comes from. The wildcards * and ? match any run of characters and a single character, so Daily_* lists by name alone. Adding date tokens states where the date sits in the name and how it is written. The tokens are the same ones the report renderer formats its output name with, so the Pattern is the format string that produced the file:
| Token | Meaning | Matches | Example |
|---|---|---|---|
| %Y | Year, four digits | 4 digits | 2026 |
| %y | Year, two digits. Below 50 is read as 20xx, 50 and above as 19xx | 2 digits | 26 |
| %m | Month | 2 digits, 01 to 12 | 08 |
| %d | Day of the month | 2 digits, 01 to 31 | 07 |
| %H | Hour on the 24-hour clock | 2 digits, 00 to 23 | 10 |
| %M | Minute | 2 digits, 00 to 59 | 06 |
| %S | Second | 2 digits, 00 to 59 | 01 |
| * | Any run of characters, including none | any | Monday |
| ? | A single character | any one | A |
No rows match the filter.
Every token is introduced by a percent sign, so all other text in the Pattern is literal exactly as typed. A folder of reports named WTP Realtime report_2026-07-28.pdf is matched by WTP Realtime report_%Y-%m-%d.pdf, with nothing special needed for the letters in the report name. Write %% where the file name holds a literal percent sign.
Case matters, and %m against %M is the easy mistake: %m is the month and %M is the minute, so Report_%d-%M-%Y.pdf would mean day, minute, year and match nothing. All tokens are fixed width and zero padded, so %m matches 08 and never 8; a folder of unpadded names is matched with ? wildcards instead and carries no date.
Use a wildcard for the parts of a name that are not needed. Report_%d-%m-%Y_%H%M%S_*.pdf reads 7 August 2026 at 10:06:01 from Report_07-08-2026_100601_Monday.pdf and skips the weekday, which is already implied by the date.
| File name | Pattern | Date read |
|---|---|---|
| Daily_2026-07-28.pdf | Daily_%Y-%m-%d.pdf | 28 July 2026 |
| Report_07-08-2026.pdf | Report_%d-%m-%Y.pdf | 7 August 2026 |
| Report_07-08-2026.pdf | Report_%m-%d-%Y.pdf | 8 July 2026 |
| Report_07-08-2026_100601_Monday.pdf | Report_%d-%m-%Y_%H%M%S_*.pdf | 7 August 2026, 10:06:01 |
| WTP Realtime report_2026-07-28.pdf | WTP Realtime report_%Y-%m-%d.pdf | 28 July 2026 |
| Monthly_2026-07.pdf | Monthly_%Y-%m.pdf | None, no day is declared |
| Batch_2026072612.pdf | Batch_* | None, no tokens are declared |
No rows match the filter.
A date is never taken from a file name unless the Pattern declares it. Where no complete date is declared, meaning %Y or %y together with %m and %d, the document has no date: From and To have nothing to compare against and are ignored, Item Label set to Date shows the file name, and the list is ordered by the time the files were written. This is deliberate. A date read out of a name by guesswork silently mislabels and misfilters, and a serial number such as Batch_2026072612.pdf is not a date.
Item Label chooses what the operator reads. The value written to the bound variable is always the full path, whichever label is shown. For a folder holding WTP Realtime report_2026-07-28.pdf, matched by WTP Realtime report_%Y-%m-%d.pdf and rendered on 29 July at 07:54 local time:
| Item Label | Shown to the operator | Taken from |
|---|---|---|
| File Name | WTP Realtime report_2026-07-28.pdf | The file name as it is |
| Date | 2026-07-28 | The date declared by the Pattern |
| Date and Time | 2026-07-29 07:54 | The moment the file was written, in local time |
| Date, with no tokens in the Pattern | WTP Realtime report_2026-07-28.pdf | The file name, because no date was declared |
No rows match the filter.
Date and Date and Time answer different questions. Date is the day the report covers, read from the file name. Date and Time is the moment the file was written, shown in the local time of the client. A batch of reports for different days that was rendered in one run carries the same write time for every file, so Date is the option that keeps the entries apart and Date and Time is the option that shows when the run happened.
From and To narrow the list by the declared date and are inclusive at both ends. They accept a date, a date and time, or the name of a variable holding one, which is normally a client variable written by a DateTimePicker. Both are optional and work independently:
| From | To | Documents listed |
|---|---|---|
| Empty | Empty | Every document in the folder, with no date limit |
| Set | Empty | From that date onward |
| Empty | Set | Up to and including that date, to the end of the day |
| Set | Set | The range between them, including both ends |
| The same variable in both | One single day, selected by one DateTimePicker |
No rows match the filter.
The comparison uses the precision the Pattern declared, so a Pattern carrying %H%M%S supports a window such as 08:00 to 11:00 on one day. A value that cannot be read as a date is treated the same as an empty one, which keeps a page showing the whole folder while its date variable has not arrived yet instead of an empty list.
Where the Pattern declares a date without a time, the documents sit at the start of their day. A bound that carries a time therefore excludes them, so set the DateTimePickers to Date Only when the file names hold no time.
Text
Configure the text appearance of the list items.
| Setting | Description | Example | Units |
|---|---|---|---|
| Font Family | Font family used for the list items. | Arial | Font family name |
| Font Align | Horizontal alignment of the list items: Left, Center or Right. | Left | Selection |
| Font Weight | Font weight used for the list items. | 400 | CSS font weight |
| Font Size | Font size used for the list items. A number without a unit is applied in px. | 14 | px |
| Padding | Space between the border and the list items. Enter one to four values in the order top, right, bottom, left, for example 4 8 for 4 px at the top and bottom and 8 px at the left and right. A number without a unit is applied in px. | 4 8 | px |
No rows match the filter.
Position / Size
Configure the position and size of the ListBox object.
| Setting | Description | Example | Units |
|---|---|---|---|
| Top | Top position of the object. | 100 | px |
| Left | Left position of the object. | 220 | px |
| Width | Width of the object. | 200 | px |
| Height | Height of the object. | 140 | px |
| Z-index | Layer order of the object. Higher values appear in front of lower values. | 10 | Number |
No rows match the filter.
Access Control
Configure access control for the ListBox object.
| Setting | Description | Example | Units |
|---|---|---|---|
| Access Control Enable | Enables access control evaluation for the object. | true | Boolean |
| Access Control | Expression controlling who can use or see the object. | SYSTEM.UserGroups == "Operators" | Expression |
| Access Control Filter | CSS filter applied when access control is used to alter the object appearance. | blur(0px) contrast(30%) | CSS filter |
No rows match the filter.
Visibility
Configure the runtime visibility and blinking behavior for the ListBox object.
| Setting | Description | Example | Units |
|---|---|---|---|
| Visibility | Expression controlling whether the object is visible. | PLC1.ListBoxVisible | Expression |
| Blink | Expression or boolean controlling list box blinking. | PLC1.AlarmActive | Boolean or expression |
| Blink Speed | Blink speed used during runtime. | 500 | ms |
| Blink Offset | Blink offset used to stagger blinking between objects. | false | Boolean |
No rows match the filter.