Example 3: DISPLAY ARRAY using modification triggers
Form definition file
"custlist.per":
SCHEMA shop
LAYOUT
TABLE
{
Id Name LastName
[f001 |f002 |f003 ]
[f001 |f002 |f003 ]
[f001 |f002 |f003 ]
[f001 |f002 |f003 ]
[f001 |f002 |f003 ]
[f001 |f002 |f003 ]
}
END
END
TABLES
customer
END
ATTRIBUTES
f001 = customer.id;
f002 = customer.fname;
f003 = customer.lname;
END
INSTRUCTIONS
SCREEN RECORD srec(customer.*);
END
Program source code:
SCHEMA shop
MAIN
DEFINE arr DYNAMIC ARRAY OF RECORD LIKE customer.*
DEFINE cnt, ofs, len, row, i INTEGER
DATABASE shop
OPEN FORM f1 FROM "custlist"
DISPLAY FORM f1
DECLARE c1 CURSOR FOR
SELECT id, fname, lname FROM customer
LET cnt = 1
FOREACH c1 INTO arr[cnt].*
LET cnt = cnt + 1
END FOREACH
CALL arr.deleteElement(cnt)
DISPLAY ARRAY arr TO srec.* ATTRIBUTES(UNBUFFERED)
ON UPDATE
INPUT arr[arr_curr()].* WITHOUT DEFAULTS FROM srec[scr_line()].* ;
ON INSERT
INPUT arr[arr_curr()].* FROM srec[scr_line()].* ;
ON APPEND
INPUT arr[arr_curr()].* FROM srec[scr_line()].* ;
ON DELETE
MENU "Delete" ATTRIBUTES(STYLE="dialog",
COMMENT="Do you want to delete the current row?")
COMMAND "Yes" LET int_flag = FALSE
COMMAND "No" LET int_flag = TRUE
END MENU
END DISPLAY
END MAIN