The browse supports three row-specific events:

  • ROW-ENTRY — Occurs when a user enters edit mode on a selected row. This occurs when the user clicks on an enabled cell within a row.
  • ROW-LEAVE — Occurs when the user leaves edit mode. This occurs when the user leaves the enabled cells within a row, either by selecting a different row or selecting a nonenabled cell within the same row.
  • ROW-DISPLAY — Occurs when a row becomes visible in the browse viewport.

You can find examples of how ROW-ENTRY and ROW-LEAVE work in the sections on updating and creating browse rows later in Manipulate rows in the browse.

The ROW-DISPLAY event lets you change the color and font attributes of a row or individual cells or to reference field values in the row. The event also lets you change the format of a browse-cell by changing the value of its FORMAT attribute. You can also use the ROW-DISPLAY event to change the SCREEN-VALUE of one or more cells within the row.

For example, you can create a ROW-DISPLAY event for the OrderBrowse in your test window with this code:

DO:
  Order.PO:SCREEN-VALUE IN BROWSE orderBrowse =
    "PO" + STRING (Order.OrderNum).
  IF Order.ShipDate = ? THEN
    ShipDate:BGCOLOR IN BROWSE OrderBrowse = 12. 
END.

This changes the displayed value for the PO column and also checks the value of the ShipDate and changes its background color to signal that the ShipDate has not been entered, as shown in the following figure.

Figure 1. Result of ROW-DISPLAY event example
Note: If you want to use this technique to change the colors of an array extent field, you must do so by directly referencing each member.

In character interfaces, the DCOLOR attribute specifies the color of an individual cell.

You can also reference the record buffer for the current row. You should not use the ROW-DISPLAY event to manipulate the associated query, the record buffer, or the browser itself.