ENUM( [ type ,] name [=value] [ , name [=value] ... ] )
| type | The numeric value type of the values. If omitted, defaults to UNSIGNED4. |
| name | The label of the enumerated value. |
| value | The numeric value to associate with the name. If omitted, the value is the previous value plus one (1). If all values are omitted, the enumeration starts with one (1). |
The ENUM declaration specifies constant values to make code more readable.
Example:
GenderEnum := ENUM(UNSIGNED1,Male,Female,Either,Unknown);
//values are 1, 2, 3, 4
Pflg := ENUM(None=0,Dead=1,Foreign=2,Terrorist=4,Wanted=Terrorist*2);
//values are 0, 1, 2, 4, 8
namesRecord := RECORD
STRING20 surname;
STRING10 forename;
GenderEnum gender;
INTEGER2 age := 25;
END;
namesTable2 := DATASET([{'Foreman','George',GenderEnum.Male,Pflg.Foreign},
{'Bin','O',GenderEnum.Male,Pflg.Foreign+Pflg.Terrorist+Pflg.Wanted}
], namesRecord);
OUTPUT(namesTable2);
myModule(UNSIGNED4 baseError, STRING x) := MODULE
EXPORT ErrCode := ENUM( ErrorBase = baseError,
ErrNoActiveTable,
ErrNoActiveSystem,
ErrFatal,
ErrLast);
EXPORT reportX := FAIL(ErrCode.ErrNoActiveTable,'No ActiveTable in ' + x);
END;
myModule(100, 'Call1').reportX;
myModule(300, 'Call2').reportX;