Keyboard seek
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 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.