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.