Release 10.1A: OpenEdge Development:
Progress 4GL Handbook

> ## Browse selection and query interaction

> When a browse is initialized, the buffer for its query contains the first record in the query, since the user has not yet selected a record. To keep the browse in sync with the query, the buffer contains the first record in the browse viewport while there is no selected record. Whenever the user selects a row, that row becomes the current row in the query’s buffer.

> In a multiple-select browse, if you deselect the current row, the query is repositioned to the previously selected row. If no rows are selected, the query is repositioned to the first record in the viewport.

> Table 12–1 summarizes how actions on the browse affect the associated query.

> Table 12–1: Browse and query interaction
> Browse action | Effect on query
> --- | ---
> Vertical keyboard navigation. | Moves the result list cursor for single-select browse widgets.
> Select row. | Puts records for that row into the record buffers.
> Deselect current row. | If other records are selected in the browse, put records for the most recently selected of those rows into the record buffers. Otherwise, repositions to the first row in the viewport.
> Deselect noncurrent row. | None.

> Using the `GET` statement (such as `GET NEXT`) to navigate within the result list of the query has no effect on the browse. However, the `REPOSITION` statement does update the current position of the browse. If you use `GET` statements for a query on which a browse is defined, you should use the `REPOSITION` statement to keep the browse synchronized with the query. Also, when you open or reopen the query with the `OPEN QUERY` statement, the browse is automatically refreshed and positioned to the first record.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095