Configuration options

Various options can be specified to control the behavior of the INPUT ARRAY instruction.

Additional options are available to configure a INPUT ARRAY dialog. For more details, go to the List dialogs chapter in the Genero Business Development Language User Guide.

The UNBUFFERED attribute

When the UNBUFFERED attribute is used, the INPUT ARRAY statement is sensitive to program variable changes.

If you need to display new data during the execution, use the UNBUFFERED attribute and assign the values to the program array row; the runtime system will automatically display the values to the screen. This sensitivity applies to ON ACTION control blocks, as well: Before executing the code corresponding to the invoked action, the content of the form field is converted and assigned to the corresponding record member of the array program variable.

The WITHOUT DEFAULTS clause in INPUT ARRAY

The WITHOUT DEFAULTS clause instructs the INPUT ARRAY statement to use and display the rows currently stored in the program array. Without this clause, the INPUT ARRAY would start with an empty list.

When creating a new row with the insert or append action, the REQUIRED attribute is always taken into account by INPUT ARRAY, even if the WITHOUT DEFAULTS clause is used.

The WITHOUT DEFAULTS clause prevents BDL from displaying any default values that have been defined for form fields. You must use this clause if you want to see the values of the program array.

The MAXCOUNT attribute

The MAXCOUNT attribute defines the maximum number of data rows that can be entered in the program array. In a dynamic array, the user can enter an infinite number of rows if the MAXCOUNT attribute is not set.

Denying modification actions

By default, INPUT ARRAY implicitly creates the insert, append and delete actions. If one or more of these actions are not needed, set the INSERT ROW, APPEND ROW or DELETE ROW attributes to FALSE in the ATTRIBUTES clause of your INPUT ARRAY:
INPUT ARRAY custarr FROM sa_cust.*
    ATTRIBUTES ( INSERT ROW = FALSE )

Decorating record list cells

Each cell of table rows can be decorated with a specific color and effect, by defining a program array dedicated to decoration attributes, that is bound to the INPUT ARRAY dialog with the DIALOG.setArrayAttributes() method:
INPUT ARRAY custarr FROM sa_cust.*
   BEFORE INPUT
      CALL DIALOG.setArrayAttributes("sa_cust",custatt)
When changing the decoration attributes of the custatt array, the cells will automatically get the colors and effects defined in the array.