Example 6: Code block variables
This example shows how to use variables defined with the VAR instruction, to be used in a specific scope in the program code.
IMPORT util
TYPE t_rec RECORD
id INTEGER,
name VARCHAR(20),
tags DYNAMIC ARRAY OF STRING
END RECORD
MAIN
IF arg_val(1)=="rec1" THEN
VAR rec1 t_rec = (
id: -1,
name: NULL
)
DISPLAY util.JSON.stringify(rec1)
ELSE
VAR rec2 t_rec = (
id: -1,
name: "<undefined>",
tags: getDefaultTags()
)
DISPLAY util.JSON.stringify(rec2)
END IF
END MAIN
FUNCTION getDefaultName() RETURNS STRING
RETURN "<undefined>"
END FUNCTION
FUNCTION getDefaultTags() RETURNS DYNAMIC ARRAY OF STRING
DEFINE arr DYNAMIC ARRAY OF STRING
LET arr[1] = "foo"
LET arr[2] = "bar"
RETURN arr
END FUNCTION
Ouput:
$ fglcomp -M v.4gl && fglrun v.42m rec1
{"id":-1,"tags":[]}
$ fglcomp -M v.4gl && fglrun v.42m rec2
{"id":-1,"name":"<undefined>","tags":["foo","bar"]}