This function retrieves a row from the customer table and displays
it in a form.
Function
query_cust:
01 FUNCTION query_cust() -- displays one row
02 DEFINE l_custrec RECORD
03 store_num LIKE customer.store_num,
04 store_name LIKE customer.store_name,
05 addr LIKE customer.addr,
06 addr2 LIKE customer.addr2,
07 city LIKE customer.city,
08 state LIKE customer.state,
09 zip_code LIKE customer.zip_code,
10 contact_name LIKE customer.contact_name,
11 phone LIKE customer.phone
12 END RECORD
13
14 SELECT store_num,
15 store_name,
16 addr,
17 addr2,
18 city,
19 state,
20 zip_code,
21 contact_name,
22 phone
23 INTO l_custrec.*
24 FROM customer
25 WHERE store_num = 101
26
27 DISPLAY BY NAME l_custrec.*
28 MESSAGE "Customer " || l_custrec.store_num ||
29 " displayed."
30 END FUNCTION
Note:
- Line 01 is the beginning of the function
query_cust. No variables are passed to the
function.
- Lines 02 thru 12
DEFINE a record l_custrec as
LIKE columns in the customer database
table, listing each variable separately.
- Line 14 thru 25
SELECT ... INTO can be used, since the statement will
retrieve only one row from the database. The SELECT
statement lists each column name to be retrieved, rather than using
SELECT *. This allows for the possibility that
additional columns might be added to a table at a future date. Since the
SELECT list retrieves values for all the variables in
the program record, in the order listed in the DEFINE
statement, the shorthand INTO l_custrec.* can be used.
- Line 27 The names in the program record
l_custrec match the names of screen fields on the form,
so DISPLAY BY NAME can be used.
l_custrec.* indicates that all of the members of the
program record are to be displayed.
- Lines 28 and 29 A string for the MESSAGE statement is
concatenated together using the double pipe ( || ) operator and displayed.
The message consists of the string "Customer", the value of
l_custrec.store_num, and the string "displayed".
There are no additional statements in the function, so the program returns to the
MENU statement, awaiting the user's next action.