CBL LIB,QUOTE
*Module/File Name: IGZTFMON
*************************************************
* Example for callable service CEEFMON *
* Function: Convert a numeric value to a *
* monetary string using specified *
* format passed as parameter. *
* Valid only for COBOL for MVS & VM Release 2 *
* or later. *
*************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. COBFMON.
DATA DIVISION. WORKING-STORAGE SECTION.
01 Monetary COMP-2.
01 Max-Size PIC S9(9) BINARY.
01 Format-Mon.
02 FM-Length PIC S9(4) BINARY.
02 FM-String PIC X(256).
01 Output-Mon.
02 OM-Length PIC S9(4) BINARY.
02 OM-String PIC X(60).
01 Length-Mon PIC S9(9) BINARY.
01 Locale-Name.
02 LN-Length PIC S9(4) BINARY.
02 LN-String PIC X(256).
** Use Locale category constants
COPY CEEIGZLC.
01 FC.
02 Condition-Token-Value.
COPY CEEIGZCT.
03 Case-1-Condition-ID.
04 Severity PIC S9(4) BINARY.
04 Msg-No PIC S9(4) BINARY.
03 Case-2-Condition-ID
REDEFINES Case-1-Condition-ID.
04 Class-Code PIC S9(4) BINARY.
04 Cause-Code PIC S9(4) BINARY.
03 Case-Sev-Ctl PIC X.
03 Facility-ID PIC XXX.
02 I-S-Info PIC S9(9) BINARY.
**
PROCEDURE DIVISION.
** Set up locale name for United States
MOVE 14 TO LN-Length.
MOVE "En_US.IBM-1047"
TO LN-String (1:LN-Length).
** Set all locale categories to United States.
** Use LC-ALL category constant from CEEIGZLC.
CALL "CEESETL" USING Locale-Name, LC-ALL, FC.
** Check feedback code
IF Severity > 0
DISPLAY "Call to CEESETL failed. " Msg-No
STOP RUN
END-IF.
** Set up numeric value
MOVE 12345.62 TO Monetary.
MOVE 60 TO Max-Size.
MOVE 2 TO FM-Length.
MOVE "%i" TO FM-String (1:FM-Length).
** Call CEEFMON to convert numeric value
CALL "CEEFMON" USING OMITTED, Monetary,
Max-Size, Format-Mon
Output-Mon, Length-Mon,
FC.
** Check feedback code and display result
IF Severity > 0
DISPLAY "Call to CEEFMON failed. " Msg-No
ELSE
DISPLAY "International format is "
OM-String(1:OM-Length)
END-IF.
STOP RUN.
END PROGRAM COBFMON.