Variable Definition

../graphics/cbo2.gif

scalar-definition
array-definition

../graphics/cbc2.gif

For an explanation of the symbols used in the syntax diagram, see Syntax Symbols.

The variable-definition option is used to define a single field/variable that may be single-valued (scalar-definition) or multi-valued (array-definition).

scalar-definition

variable-name

(format-length)

../graphics/sbo2.gif

CONSTANT
INIT

init-definition

[emhdpm]
(

A
U
B

) DYNAMIC
HANDLE OF OBJECT

array-definition

variable-name

(format-length/array-definition)

../graphics/sbo2.gif

CONSTANT
INIT

array-init-definition

[emhdpm]
(

A
U
B

/array-definition) DYNAMIC
(array-definition) HANDLE OF OBJECT

Syntax Description

Syntax Element Description
variable-name
Variable Name:

The name to be assigned to the variable. Rules for Natural variable names apply. With DEFINE DATA INDEPENDENT, the variable name must begin with a plus character (+).

For information on naming conventions for user-defined variables, see Naming Conventions for User-Defined Variables in Using Natural.

format-length
Format/Length Definition:

For information on format/length definition of user-defined variables, see Format and Length of User-Defined Variables in the Programming Guide.

HANDLE OF OBJECT
Handle of Object:

Used in conjunction with NaturalX. A handle identifies a dialog element in code and is stored in handle variables.

For further information, see NaturalX in the Programming Guide.

A, U or B
Data Type:

Alphanumeric (A), Unicode (U) or binary (B) for dynamic variables.

array-definition
Array Dimension Definition:

With an array-definition you define the lower and upper bounds of dimensions in an array-definition.

For further information, see Array Dimension Definition.

DYNAMIC
DYNAMIC Option:

A field may be defined as DYNAMIC.

For more information on processing dynamic variables, see Introduction to Dynamic Variables and Fields.

CONSTANT
CONSTANT Option:

The variable/array is to be treated as a named constant. 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.

See also Field Definitions, User-Defined Constants, Defining Named Constants in the Programming Guide.

Notes:

  1. For reasons of internal handling, it is not allowed to mix variable definitions and constant definitions within one group definition; that is, a group may contain either variables only or constants only.
  2. The CONSTANT clause must not be used with DEFINE DATA INDEPENDENT and DEFINE DATA CONTEXT. The CONSTANT option cannot be used with X-arrays.
  3. The CONSTANT option must not be used with DEFINE DATA INDEPENDENT and DEFINE DATA CONTEXT.
INIT
INIT Option:

The variable/array is to be assigned an initial value. This value will also be used when this variable/array is referenced in a RESET INITIAL statement.

If no INIT specification is supplied, a field will be initialized with a default initial value depending on its format (see table Default Initial Values below).

For further information, see Field Definitions, Initial Values in the Programming Guide.

With DEFINE DATA INDEPENDENT and DEFINE DATA CONTEXT, the INIT clause is evaluated in each executed Natural object that contains this clause (not only in the Natural object that allocates the variable). This is different to the way the INIT works for global variables.
The INIT option cannot be used with X-arrays.

init-definition
Initial-Value Definition:

With the init-definition option, you define the initial/constant values for a variable. See Initial-Value Definition.

array-init-definition
Initial/Constant Values for an Array:

The array is to be assigned an initial value. This value will also be used when this array is referenced in a RESET INITIAL statement.

With an array-init-definition, you define the initial/constant values for an array.

For further information, see Initial/Constant Values for an Array.

emhdpm
EM, HD, PM Parameters for Field/Variable:

With this option, additional parameters to be in effect for a field/variable may be defined.

For further information, see EM, HD, PM Parameters for Field/Variable.

Default Initial Values

The following table shows the default initial values that are provided with the various formats:

Format Default Initial Value
B, F, I, N, P 0
A, U   (blank)
L FALSE
D D' '
T T'00:00:00'
C (AD=D)
Object Handle NULL-HANDLE

Fields declared as DYNAMIC do not have any initial value because their field length is zero by default.