Actions bound to the current row

Actions can be configured with the ROWBOUND attribute to depend from the current row.

When using a DISPLAY ARRAY or INPUT ARRAY dialog to control a table view, actions can get the ROWBOUND attribute in order to make the action only available when there is a current row in the list.

Important: This feature is only for mobile platforms.

The ROWBOUND attribute must only be used with TABLE and TREE containers (it does not make sense for SCROLLGRID and static lists in GRID containers).

This attribute is generally used in mobile applications, when a list view requires actions to be decorated in a row-specific way. For example, on Androidâ„¢ devices, the actions with the ROWBOUND attribute will be available by selecting the three-dot button on the right of each list view cell.

In the next example, the DISPLAY ARRAY dialog implements three actions:
  • The "refresh" action is not "rowbound", and will always be available (i.e. active/visible), even if the list is empty.
  • The "check" action is rowbound, and will only be available if there is a (current) row in the list.
  • The "delete" action created by the ON DELETE modification trigger is implicitly "rowbounded".
DISPLAY ARRAY a_orders TO sr.* ATTRIBUTES(UNBUFFERED)
   ...
   ON ACTION refresh -- not rowbound
      CALL fetch_orders()
   ON ACTION check ATTRIBUTES(ROWBOUND)
      CALL check_order(arr_curr())
   ON DELETE -- implicitly rowbound
      CALL delete_order(arr_curr())
   ...
END DISPLAY