Here are some facts to consider when you create and use dynamic browses and browse columns:

  • You can set attributes on any of the columns in a dynamic browse after you have added them.
  • You can use all three of the ADD methods to add more columns to a static browse, as well as a dynamic browse. You can take advantage of this to add columns to a browse that already has some columns statically defined, or you can define a static browse with no columns at all as a placeholder for a browse whose query and columns are defined dynamically at run time. In this way, you can define some of the visual attributes of the browse statically and then fill in the definition at run time.
  • You can add a combo-box or toggle-box browse column for a buffer-field by specifying the widget type in the buffer-field’s VIEW-AS attribute or the respective ADD method. For more information, see the ABL Reference.
  • You cannot specify the CAN-FIND function in the validation expression for a dynamic browse column. This is a principal reason why you normally want to set the NO-VALIDATE browse attribute to YES for a dynamic browse, in case there are any such expressions in the field-level validation inherited from the schema.
  • You can set the VISIBLE attribute for a browse column as well as for the browse as a whole.
  • If you use the ADD-CALC-COLUMN method to create one or more columns to hold calculated values, you must define the ROW-DISPLAY trigger where the value of the calculated column is set prior to adding the column, so that the trigger is already established before the column is added. This is to ensure that the initial viewport of the calculated column is correctly populated.
  • A dynamic browse, as well as a static browse to which you add columns dynamically, automatically becomes a NO-ASSIGN browse. This means that you do not get any default update handling from ABL. You must take care of capturing changes to the browse data and applying those changes in procedure code.
  • You can change the query of either a dynamic or a static browse, even if the underlying fields are not the same as those of the original query. However, if the underlying fields are not the same, all browse columns are removed and you have to specify the columns again using the ADD-COLUMNS-FROM, ADD-LIKE-COLUMN, and ADD-CALC-COLUMN methods. If you set the QUERY attribute of a browse to the Unknown value (?), all browse columns are removed.