CBL LIB,QUOTE
*Module/File Name: IGZTLCNV
*************************************************
** Example for callable service CEELCNV **
** Function: Retrieve numeric and monetary **
** format for default locale and **
** print an item. **
** Set locale to France, retrieve **
** structure, and print an item. **
** Valid only for COBOL for MVS & VM Release 2 **
** or later. **
*************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. MAINLCNV.
DATA DIVISION.
WORKING-STORAGE SECTION.
*************************************************
** Use Locale NM-Struct for CEELCNV calls **
*************************************************
COPY CEEIGZN2.
*
PROCEDURE DIVISION.
*************************************************
** Subroutine needed for addressing **
*************************************************
CALL "COBLCNV" USING NM-Struct.
STOP RUN.
*
IDENTIFICATION DIVISION.
PROGRAM-ID. COBLCNV.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 PTR1 Pointer.
01 Locale-Name.
02 LN-Length PIC S9(5) 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.
LINKAGE SECTION.
*************************************************
** Use Locale NM-Struct for CEELCNV calls **
*************************************************
COPY CEEIGZN2.
*
PROCEDURE DIVISION USING NM-Struct.
*************************************************
** Call CEELCNV to retrieve values for locale**
*************************************************
CALL "CEELCNV" USING OMITTED,
ADDRESS OF NM-Struct, FC.
*************************************************
** Check feedback code and display result **
*************************************************
IF Severity = 0 THEN
DISPLAY "Default decimal point is "
DECIMAL-PT-String(1:DECIMAL-PT-Length)
ELSE
DISPLAY "Call to CEELCNV failed. " Msg-No
END-IF.
*************************************************
** Set up locale for France **
*************************************************
MOVE 5 TO LN-Length.
MOVE "Fr_FR" TO LN-String (1:LN-Length).
*************************************************
** Call CEESETL to set monetary locale **
*************************************************
CALL "CEESETL" USING Locale-Name,
LC-MONETARY, FC.
*************************************************
** Call CEESETL to set numeric locale **
*************************************************
CALL "CEESETL" USING Locale-Name,
LC-NUMERIC, FC.
*************************************************
** Check feedback code and call CEELCNV again **
** using version 2 to get at C99 mapping.**
*************************************************
IF Severity = 0
MOVE 2 TO Version
set PTR1 to address of Version-Info
CALL "CEELCNV" USING PTR1,
ADDRESS OF NM-Struct, FC
IF Severity > 0
DISPLAY "Call to CEELCNV failed. "
Msg-No
ELSE
DISPLAY "French decimal point is "
DECIMAL-PT-String(1:DECIMAL-PT-Length)
END-IF
ELSE
DISPLAY "Call to CEESETL failed. " Msg-No
END-IF.
EXIT PROGRAM.
END PROGRAM COBLCNV.
*
END PROGRAM MAINLCNV.