Keyboard seek to matching row
The keyboard seek feature allows a user to find a row in a read-only list, by typing characters.
When a DISPLAY ARRAY
is used with a list, the keyboard seek feature is automatically implemented. A user may type alphabetic
characters on the keyboard to have the runtime system automatically seek the next row having a character
field that contains a value starting with the typed characters. The seek search restarts from the
current row when the user types new characters on the keyboard.
This feature is not supported on mobile platforms.
This feature works with any list container (TABLE
, TREE
, SCROLLGRID
).
Numeric, date/time and large data (TEXT
/BYTE
) columns are
ignored. Only character columns are searched, fields using widgets like image, radio-group or
checkbox are ignored. Furthermore, the seek function ignores PHANTOM
fields,
hidden fields and fields defined with the INVISIBLE
attribute.
The user can rapidly type several characters on the keyboard, to search for a value that starts with the typed characters. After a given timeout (less than a second), the seek buffer is cleared and a new search filter can be applied.
The seek search is case-insensitive.
If no row is found from the typed characters, the [Not found] error -8105 is displayed automatically.
If an alphabetic character is used as action accelerator, the built-in seek feature is disabled, because the accelerator must fire the corresponding action.
Only rows in memory can be searched. When using page-mode (ON FILL BUFFER
),
the built-in seek is disabled. When implementing dynamic tree
views, the built-in seek will only search the tree nodes available in the program array.
By default, any character column of the list is scanned. But if the list gets sorted, the runtime system considers that the sort column is the most important and searches only in that column.