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) RETURNS ()
02   DEFINE p_fetch_flag SMALLINT,
03         fetch_ok SMALLINT
04
05   MESSAGE " "       
06   CALL fetch_cust(p_fetch_flag)
07     RETURNING fetch_ok 
08
09   IF (fetch_ok) THEN
10     CALL display_cust()
11   ELSE
12     IF (p_fetch_flag = 1) THEN
13       MESSAGE "End of list"
14     ELSE
15       MESSAGE "Beginning of list"
16     END IF
17   END IF
18
19 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 05 resets the MESSAGE display to blanks.
  • Line 06 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.
  • Lines09 and 10 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 13 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 15 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 19 is the end of the function fetch_rel_cust.