Fields of the Interface control block

Use the fields of the interface control block to pass information to and from your exit routine. Although there are separate interface control blocks that work with Assembly, PL/I, or COBOL, the fields of the interface control block are standard regardless of the programming language your edit exit routine is written in. These fields are shown in Table 69. Unless otherwise stated, each field relates to all formatting calls.

These same fields appear in each sample program (one for each programming language supported) shipped with QMF. You can include these field names in your own source program. The QMF production disk contains the sample programs.

Table 69. Fields of the QMF interface control block
Name Contents
ECSDECPT Contains the current decimal point symbol as determined by the DECOPT option of PROFILE (period or comma).
ECSECODE Contains the user edit code.
ECSERRET Contains a zero at the point of call. Set this to a nonzero return code to record an error. Use one of the values on the following list for an error of the indicated type:
Number
Error
99101
Unrecognized edit code
99102
Improper input data type for edit code
99103
Invalid input value for item to be formatted
99104
Item to be formatted is too short
99105
Not enough room for result in ECSRSLT (result is too wide for the space allotted)

The error codes listed (and their associated messages and help panels) are specific to the error. For any other code, a general error message, with a general backup help panel, is displayed.

ECSFREQ Holds E for a formatting call, T for a termination call.
ECSINLEN Contains the length, in bytes, of the value to be formatted.
ECSINNUL Holds an N if the value to be formatted is null.
ECSINPRC Contains the precision of the value to be formatted. Applies only to U-type codes when the data type is DECIMAL, or to V-type codes when the character string to be formatted was derived from numeric data.
ECSINSCL Contains the scale of the value to be formatted. Applies only to U-type codes when the data type is DECIMAL, or to V-type codes when the character string to be formatted was derived from numeric data.
ECSINSGN Holds the sign of a converted numeric value (blank or - ). Applies only to V codes when the character string to be formatted was derived from numeric data.
ECSINTYP Indicates, in database terms, how the value to be formatted is represented. Applies to edit codes of every type. Values can be:
384
DATE data type
388
TIME data type
392
TIMESTAMP data type
448
VARCHAR data type
452
CHAR data type
456
LONG VARCHAR data type
464
VARGRAPHIC data type
468
GRAPHIC data type
472
LONG VARGRAPHIC data type
480
FLOAT data type
484
DECIMAL data type
496
INTEGER data type
500
SMALLINT data type
940
Extended floating point data type
The extended floating point data type is not supported by the database (or by COBOL); it is limited to functions such as AVERAGE and STDEV. Extended floating point values are precise to more than 30 digits.
ECSNAME Contains the name of the control block, which is DXEECS. Serves as an eye catcher in storage dumps.
ECSRQMF Set this to T to request a termination call.
ECSRSLEN Contains the length of the output area, in bytes. (Value is taken from the column WIDTH in the FORM)
ECSTHSEP Contains the thousands separator as determined by the DECOPT option of PROFILE (blank or a comma).
ECSUSERS A 256-byte scratchpad area where your exit routine can record information that persists from one call to the next. On the first call after the edit routine is loaded, this field contains binary zeros.
[ Previous Page | Next Page | Contents | Index ]