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:
Note:
For example definitions of assigning initial values to arrays, see
                         Example 2 - DEFINE
                            DATA (Array Definition/Initialization) in the
                         Statements documentation.
                  
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)
                         | 
                                
                               
                     
| 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 character string (only possible for variables of the Natural data format A or U).
Filling an entire field:
 With the option
                                FULL LENGTH
                                      <character-string>, the
                                entire field is filled with the specified characters.
                     
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-string>, the
                                first n positions of the field are
                                filled with the specified characters.
                     
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 ...