Understanding the INPUT ARRAY instruction
The INPUT ARRAY
dialog controls a list of records than can be directly
edited.
INPUT ARRAY
is designed to browse and modify a list of records, binding a static
or dynamic array model to a screen array
of the current displayed form.
An INPUT ARRAY
instruction supports additional features,
built-in sort and search, multi-row selection and list modification triggers.
For a detailed description of these features,
see Table views.
Use the INPUT ARRAY
instruction to let the end user update, delete and create
new records in a list, after fetching a result set from the database. The result set is produced
with a database cursor executing a SELECT
statement. The SELECT
SQL statement is usually completed at runtime with a WHERE
clause produced
from a CONSTRUCT
dialog.
The INPUT ARRAY
instruction associates a program array of records with a
screen-array defined in a form so that the user can update the list of records. The
INPUT ARRAY
statement activates the current form (the form that was most
recently displayed or the form in the current window).
An INPUT ARRAY
will start with an empty list of rows, unless the WITHOUT DEFAULTS
option is used.
Using WITHOUT DEFAULTS
clause instructs the INPUT ARRAY
dialog to
use the current data rows of the program array bound to the dialog. However, when creating a new
row, the field validation rules will apply like in a simple INPUT
not using the
WITHOUT DEFAULTS
option.
During the INPUT ARRAY
execution, the user can edit or delete existing rows,
insert new rows, and move inside the list of records. The program controls the behavior of the
instruction with dialog control blocks such as
BEFORE DELETE
, BEFORE INSERT
, etc.
When the user clicks on an action view (button), or when an asynchronous event occurs, dialog interaction blocks like ON ACTION
are executed.
The code inside an INPUT ARRAY
dialog can use control instructions, dialog control functions, and the ui.Dialog
class, to implement
the dialog behavior.
To terminate the INPUT ARRAY
execution, the user can validate (or cancel)
the dialog to commit (or invalidate) the modifications made in the list of records.
When the statement completes execution, the program must test the int_flag
variable to check if the dialog was validated (or
canceled) and then use INSERT
, DELETE
, or UPDATE
SQL statements to modify the appropriate database tables. The database can also be updated during
the execution of theINPUT ARRAY
statement.
A DISPLAY ARRAY
dialog is in read-only mode for navigating the list of records
and needs a user action to perform a modification to the record list. An INPUT
ARRAY
dialog offers record list navigation with direct modification; no user action is
required to modify the data.
DISPLAY ARRAY
is better adapted to modern graphical user interfaces, while
INPUT ARRAY
is better adapted to TUI mode ergonomics. It is also easier to program
a DISPLAY ARRAY
with modification triggers compared to the implementation of an
INPUT ARRAY
, especially when the underlying SQL table must be updated during the
dialog execution.
For modern GUI applications, we recommend using DISPLAY ARRAY
with modification
triggers (ON APPEND
, ON INSERT
, ON UPDATE
, ON DELETE
).