that have been identified by SELECT processing.
** Built-in: FETCH_RECORDS
** Example: Perform Form Builder record fetch processing
** query time. Decide whether to use this built-in
** or a user exit based on a global flag setup at
** startup by the form, perhaps based on a
** parameter. The block property RECORDS_TO_FETCH
** allows you to know how many records Form Builder
** is expecting.
** trigger: On-Fetch
** Check the global flag we set during form startup
IF :Global.Using_Transactional_Triggers = ’TRUE’ THEN
** How many records is the form expecting us to
numrecs := Get_Block_Property(’EMP’,RECORDS_TO_FETCH);
** Call user exit to determine if there are any
** more records to fetch from its cursor. User Exit
** will return failure if there are no more
** records to fetch.
User_Exit(’my_fetch block=EMP remaining_records’);
** If there ARE more records, then loop thru
** and create/populate the proper number of queried
** records. If there are no more records, we drop through
** and do nothing. Form Builder takes this as a signal that
** we are done.
IF Form_Success THEN
/* Create and Populate ’numrecs’ records */
FOR j IN 1..numrecs LOOP
** User exit returns false if there are no more
** records left to fetch. We break out of the
** if we’ve hit the last record.
User_Exit(’my_fetch block=EMP get_next_record’);
IF NOT Form_Success THEN
** Otherwise, do the right thing.