Table views / Built-in table features |
The keyboard seek feature allows a user to find a row in a read-only list, by typing characters.
During a DISPLAY ARRAY, when the user types alphabetic characters on the keyboard, the runtime system will automatically seek to 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 a 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. Further, 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 taken into account.
The seek search is case-insensitive.
If no row could be found from the typed characters, the [Not found] error -8105 will be 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.