BROWSE Widget
A browse widget lets you see data and select records from all the records associated with a database query. You can define a static browse widget with the DEFINE BROWSE statement or a dynamic browse widget with the CREATE BROWSE statement. The CREATE BROWSE is valid only in a graphical interface. A browse can be either a read-only tool for browsing through records, or it can be an editing tool for updating records, depending on the options you specify.
You can also move and resize the browse and its components. Specifically, in graphical interfaces, you can move and resize the browse, move and change the width of the browse-column, and change the height of the browse-row. You can do all this through direct manipulation (by pointing, clicking, and dragging) and through the 4GL. For more information, see the Progress Programming Handbook
.
The following figure shows a read-only browse widget:
The following figure shows an updateable browse. Note the inline editing capability in the focused row:
ATTRIBUTES
When describing browse attributes, it is important to understand the scope of each attribute. An attribute can apply to:
- The browse widget as a whole.
- A single browse column.
- A single browse cell. In this case, the attribute applies to only the single cell at the intersection of the named column and the focused row.
- Both the browse as a whole and a cell or column. For example, in the same trigger, you could change the background color of the whole browse to blue and the background color of the current cell to yellow.
When you want to reference an attribute that applies to the browse as a whole, the correct syntax is as follows:
The IN FRAME qualifier is only necessary for a static browse to avoid ambiguity.
When an attribute applies to a column or a cell, the identifier is the field or variable name as listed in the DEFINE BROWSE statement. This identifier is known as the column name. The browse column’s widget-handle may also be used. Here is the syntax:
The IN BROWSE qualifier is only necessary for a static browse to avoid ambiguity, but it is good programming practice to always include it, especially when you reference the same field as a separate widget type.
The following table lists all the attributes for the browse widget, whether they are readable and writeable, and their scope.
Attribute
|
Readable/Writeable
|
Applies To
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Cell
|
|
Readable/writeable
|
Browse, cell
|
|
Readable
|
Column
|
|
Readable/writeable (browse), readable (cell)
|
Browse, cell
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Column, cell
|
|
Readable
|
Column
|
|
Readable
|
Column
|
|
Readable (browse), Readable/writeable (cell)
|
Browse, cell
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse, cell
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Browse, cell
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse, cell
|
|
Readable/writeable
|
Browse, cell
|
|
Readable/writeable
|
Browse, cell
|
|
Readable/writeable
|
Browse, column
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Column
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse, column
|
|
Readable
|
Browse, column
|
|
Readable/writeable
|
Browse, column
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Browse, cell
|
|
Readable
|
Browse
|
|
Readable
|
Column
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Cell
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Column
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Browse, column
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse, column
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse, column
|
|
Readable/writeable (browse), readable (cell)
|
Browse, cell
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Cell
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Column
|
|
Readable
|
Column
|
|
Readable
|
Column
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Column
|
|
Readable
|
Column
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable
|
Browse
|
|
Readable/writeable
|
Browse
|
|
Readable
|
Browse, cell
|
|
Readable/writeable
|
Browse, column
|
|
Readable/writeable
|
Browse, cell, column
|
|
Readable/writeable
|
Browse, cell, column
|
|
Readable
|
Browse
|
|
Readable/writeable (browse), readable (cell)
|
Browse, cell
|
|
Readable/writeable, (browse), readable (cell)
|
Browse, cell
|
- Graphical interfaces only.
- Character interfaces only.
- Windows only.
- Windows only for column only.
|
METHODS
EVENTS
SEE ALSO
The chapter on the browse in the Progress Programming Handbook
.