This document describes the default initial values of user-defined
variables, explains how you can assign an initial value to a user-defined
variable and how you can use the RESET
statement to reset the
field value to its default initial value or the initial value defined for that
variable in the DEFINE
DATA
statement.
This document covers the following topics:
If you specify no initial value for a field, the field will be initialized with a default initial value depending on its format:
Format | Default Initial Value |
---|---|
B, F, I, N, P | 0 |
A, U | blank |
L | F(ALSE) |
D | D' ' |
T | T'00:00:00' |
C | (AD=D )
|
GUI Handle | NULL-HANDLE |
Object Handle | NULL-HANDLE |
In the DEFINE
DATA
statement, you can assign an initial value to a
user-defined variable. If the initial value is alphanumeric, it must be
enclosed in apostrophes.
If the variable/array is to be assigned a modifiable initial value, you
specify the initial value in angle brackets with the keyword
INIT
after the variable definition in the DEFINE DATA
statement. The
value(s) assigned will be used each time the variable/array is referenced. The
value(s) assigned can be modified during program execution.
Example:
DEFINE DATA LOCAL 1 #FIELDA (N3) INIT <100> 1 #FIELDB (A20) INIT <'ABC'> END-DEFINE ...
If the variable/array is to be treated as a named constant, you specify
the initial value in angle brackets with the keyword
CONSTANT
after
the variable definition in the DEFINE
DATA
statement. The constant value(s) assigned will be used
each time the variable/array is referenced. The value(s) assigned cannot be
modified during program execution.
Example:
DEFINE DATA LOCAL 1 #FIELDA (N3) CONST <100> 1 #FIELDB (A20) CONST <'ABC'> END-DEFINE ...
The initial value for a field may also be the value of a Natural system variable.
Example:
In this example, the system variable
*DATX
is used to provide the initial value.
DEFINE DATA LOCAL 1 #MYDATE (D) INIT <*DATX> END-DEFINE ...
As initial value, a variable can also be filled, entirely or partially, with a specific single character or string of characters (only possible for alphanumeric variables).
Filling an entire field:
With the option
FULL LENGTH
<character(s)>
, the entire
field is filled with the specified character(s).
In this example, the entire field will be filled with asterisks.
DEFINE DATA LOCAL 1 #FIELD (A25) INIT FULL LENGTH <'*'> END-DEFINE ...
Filling the first n positions of a
field:
With the option
LENGTH
n
<character(s)>
, the first
n
positions of the field are filled
with the specified character(s).
In this example, the first 4 positions of the field will be filled with exclamation marks.
DEFINE DATA LOCAL 1 #FIELD (A25) INIT LENGTH 4 <'!'> END-DEFINE ...
The RESET
statement is used to reset the value of a field. Two options are available:
Notes:
CONSTANT
clause in the DEFINE DATA
statement may not be referenced in a
RESET
statement, since its content cannot be changed.
RESET
statement may also be
used to define a variable, provided that the program contains no
DEFINE DATA
LOCAL
statement.
RESET
(without
INITIAL
) sets the content of each specified field to its
default initial value
depending on its format.
Example:
DEFINE DATA LOCAL 1 #FIELDA (N3) INIT <100> 1 #FIELDB (A20) INIT <'ABC'> 1 #FIELDC (I4) INIT <5> END-DEFINE ... ... RESET #FIELDA /* resets field value to default initial value ...
RESET
INITIAL
sets each specified field to the initial value as
defined for the field in the DEFINE
DATA
statement.
For a field declared without
INIT
clause in the DEFINE DATA
statement, RESET INITIAL
has the same effect as RESET
(without INITIAL
).
Example:
DEFINE DATA LOCAL 1 #FIELDA (N3) INIT <100> 1 #FIELDB (A20) INIT <'ABC'> 1 #FIELDC (I4) INIT <5> END-DEFINE ... RESET INITIAL #FIELDA #FIELDB #FIELDC /* resets field values to initial values as defined in DEFINE DATA ...