Example: custquery.4gl (function fetch_rel_cust)

This function is called by the MENU options next and previous in the custmain.4gl module.

Function fetch_rel_cust:
01 FUNCTION fetch_rel_cust(p_fetch_flag SMALLINT) RETURNS ()
02   DEFINE  fetch_ok BOOLEAN
03        
04   MESSAGE " "       
05   IF (fetch_ok := fetch_cust(p_fetch_flag) ) THEN
06     CALL display_cust()
07   ELSE
08     IF (p_fetch_flag = 1) THEN
09       MESSAGE "End of list"
10     ELSE
11       MESSAGE "Beginning of list"
12     END IF
13   END IF
14
15 END FUNCTION
Note:
  • Line 01 The parameter passed to p_fetch_flag will be 1 or -1, depending on the direction in which the SCROLL CURSOR is to move.
  • Line 04 resets the MESSAGE display to blanks.
  • Line 05 calls the function fetch_cust, passing it the value of p_fetch_flag. The function fetch_cust uses the SCROLL CURSOR to retrieve the next row in the direction indicated, returning FALSE if there was no row found.
  • Line 06 If a row was found (the fetch_cust function returned TRUE), the display_cust function is called to display the row in the form.
  • Line 09 If no rows were found and the direction is forward, indicated by p_fetch_flag of 1, the cursor is past the end of the result set.
  • Line 11 If no rows were found and the direction is backward, indicated by p_fetch_flag of -1, the cursor is prior to the beginning of the result set.
  • Line 15 is the end of the function fetch_rel_cust.