You are on page 1of 24

MISC.

DATA DIVISION FEATURES

y REDEFINES y RENAMES y CONDITION NAMES

REDEFINES

y Accessing the memory locations of a DATA ITEM by using another


variable name with a different picture clause.

y REDEFINED ITEMS DONT OCCUPY ADDITIONAL MEMORY y REDEFINED ITEM MAY HAVE A DIFFERENT PICTURE CLAUSE
AND SIZE

Rules: Redefines can be used for items at levels 01 49 in WS Section and at levels 02 49 in File Section Redefined item should immediately follow the original item and be of same level Redefined items can be equal/shorter than the original Item At 01 level the size of redefining data name can be greater than the size of the redefined data name Redefined data names can have different PIC clauses A data item can be redefined any number of times Redefined item cannot be further redefined

Redefines
y y y y y y y y y y y y y y

X(10).

01 WS-TELEPHONE-NUMBER

PIC

01 WS-R-TEL-NUMBER REDEFINES WSTELEPHONE-NUMBER. 05 WS-AREA-CODE PIC X(3). 05 WS-CODE1 PIC X(4). 05 WS-CODE2 PIC X(3). 01 PRODUCT-CODE. 05 PLANT-CODE PIC 9(3). 05 MATL-CODE PIC X(4). 05 SIZE-CODE PIC 99. 01 PRODUCT-INFO REDEFINES PRODUCTCODE. 05 PLANT-LOCN PIC X(2). 05 PLANT-NUM PIC 9. 05 MATL-TYPE PIC X(2). 05 MATL-CAT PIC 99. 05 PRODUCT-PACK PIC XX.

Ex: Assume item 02 AMT1 PIC 9(8). ( 12345678)

If you want to redefine the above into two elementary items with pic 9(5) and 9(3) OR differently in some other way, 02 AMT2 REDEFINES AMT1. 05 A PIC 9(5). 12345 05 B PIC 9(3). 678 02 AMT3 REDEFINES AMT1. 05 A PIC 999 05 FILLER PIC X. 05 B PIC 99. 02 AMT4 REDEFINES AMT1 PIC X(5).

RENAMES

y RENAMES

IS FOR REGROUPING OF ELEMENTARY ITEMS

y RENAMED ITEM WILL NOT HAVE PICTURE CLAUSE y ONLY CONSECUTIVE ELEMENTARY ITEMS CAN BE GROUPED y RENAMED ITEM
SHOULD BE AT LEVEL 66

y 66 LEVEL ITEMS MUST APPEAR AT THE END OF 01 LEVEL y RENAMED ITEMS CANNOT BE FURTHER RENAMED

EX: 01 WS-REC. 02 A PIC X(10). 02 B PIC X(12). 02 C PIC X(10). 02 D PIC X(8). 02 TEL PIC 9(6). 02 BASIC PIC 9(5). 66 GRP1 RENAMES FN THRU LN. 66 GRP2 RENAMES LN THRU TEL. 66 GRP3 RENAMES FN THRU TEL.

CONDITION NAMES

y CONDITION NAME IS
POSSIBLE VALUES

DEFINED AT SPECIAL LEVEL NO 88 WITH

y CONDITION NAME IS DEFINED JUST BELOW THE VARIABLE WHOSE


VALUES ARE TO BE TESTED

y INSTEAD OF WRITING THE RELATIONAL CONDITION IN THE


PROCEDURE DIVISION WE CAN USE THE CONDITION NAME

y CONDITION NAMES CAN BE DEFINED FOR A 01-49 LEVEL DATA


ITEMS

y ONLY VALUE CLAUSE IS GIVEN FOR THE 88 LEVEL ITEM y PURPOSE OF VALUE CLAUSE FOR THE DATA ITEM AND
CONDITION NAME IS DIFFERENT

EXAMPLE
M-STAT PIC X. 88 MARRIED VALUE 'M'. 88 SINGLE VALUE 'S'. 05 AGE PIC 99. 88 SR VALUE 60 THRU 99. 88 ADULT VALUE 18 THRU 59. 88 BOY VALUE 07 THRU 17. 88 CHILD VALUE 00 THRU 06. PROCEDURE DIVISION. ACCEPT M-STAT IF MARRIED THEN ===instead of IF M-STAT = 'M' DISPLAY 'MARRIED PERSON' ELSE IF SINGLE THEN .. ELSE DISPLAY ' WRONG STATUS'. COND 05

EXAMPLE
ACCEPT AGE IF SR THEN .. ELSE IF ADULT THEN .. ELSE IF BOY THEN ELSE IF CHILD THEN ELSE DISPLAY ' WRONG AGE'.

instead of IF ( AGE >= 60 AND <= 99 ) DISPLAY ' SENIOR CTZN'

ARRAY CONCEPT

y SUCCESSIVE OCCURENCE OF DATA ITEMS HAVING SAME PIC CLAUSE


KNOWN as SINGLE DIMENSION ARRAY

IS

y OCCURS CLAUSE IS USED TO DECLARE AN ARRAY y VALUE CLAUSE IS NOT PERMITTED WITH OCCURS CLAUSE y OCCURS CLAUSE IS NOT PERMITTED IN 01
ONLY IN 02-49 LEVEL,

y NORMALLY ARRAY HAS TO BE DECLARED IN WS,


THEN LOADED WITH DATA , using SYSIN DD * OR INPUT FILE

EXAMPLE
Assume given a month code I want to access the month name
One way to code is ACCEPT M-CODE IF M-CODE = 01 DISPLAY 'JAN' ELSE IF M-CODE = 01 DISPLAY 'FEB' ELSE INSTEAD IF I DECLARE AN ARRAY LIKE 01 WS-REC VALUE 'JAN FEB MAR APR MAY..'. 02 MTBL OCCURS 12 TIMES. 05 M-NAME PIC X(3). 05 F PIC X. IT IS EASY TO ACCESS USING OCCURRENCE NUMBER AS FOLLOWS DISPLAY M-NAME(M-CODE) because the month code being numeric, can be used as occurrence number

WORKING STORAGE ADVANCED-REDEFINES CLAUSE


y

FOR EX: 01 WS-REC1. 02 F PIC X(10) VALUE 'MONDAY'. 02 F PIC X(10) VALUE 'TUESDAY'. 02 F PIC X(10) VALUE 'WEDNESDAY'. 02 F PIC X(10) VALUE 'THURSDAY'. 02 F PIC X(10) VALUE 'FRIDAY'. 02 F PIC X(10) VALUE 'SATURDAY'. 02 F PIC X(10) VALUE 'SUNDAY'. 01 WS-REC2 REDEFINES WS-REC1. 02 D-NAME PIC X(10) OCCURS 7 TIMES.

PROGRAMS USING ARRAY WILL HAVE TO FIRST LOAD DATA INTO THE ARRAY AND THEN ACCESS FROM THE ARRAY DECLARATION OF A SINGLE DIMESNION ARRAY 01 WS-REC. 02 WS-STN 05 STNC 05 STNM

OCCURS 100 TIMES. PIC X(3). PIC X(20). or Dataset

Input can be taken from SYSIN DD *

PERFORM LOAD-RTN until I > 100 ACCEPT WS-STN(I) END-PERFORM SEARCHING A SINGLE DIMENSION TABLE ACCEPT WS-SC PERFORM UNTIL I > 100 IF WS-SC = STNC(I) DISPLAY STNM(I) END-IF END-PERFORM

SEARCH COMMAND SYNTAX: SEARCH [ALL ] table-name AT END DISPLAY 'NOT FOUND' WHEN condition STATEMENTS . END-SEARCH.

SEARCH SEARCH ALL

.. INDICATES LINEAR SEARCH .. BINARY SEARCH

IF YOU WANT TO USE SEARCH COMMAND YOU HAVE TO DECLARE OCCURS WITH INDEXED BY CLAUSE

EXAMPLE: 01 WS-REC. 02 WS-TBL

OCCURS 100 TIMES INDEXED BY K ASCENDING KEY IS STNC. 05 STNC PIC X(3). 05 STNM PIC X(20).

NOTE: The Index variable K need not be declared in working-storage Just the indexed by clause with a variable name is enough

ACCEPT WS-SC. SET K TO 1 SEARCH WS-TBL AT END DISPLAY NOT FOUND WHEN WS-SC = STNC(K) DISPLAY WS-SC(K) END-SEARCH

Recap of SINGLE DIMENSION ARRAY

01

WS-REC. 10 DAYNAME PIC X(10). 10 SD-ARRAY OCCURS 10 TIMES 15 MAXTEMPR PIC 99V9. 15 MINTEMPR PIC 99V9. 15 FILLER PIC X ..IS A LOGICAL REPRESENTATION OF EXAMPLE:

SUNDAY

1 2 3 4 5 350360 380390 360390 345365 390400 ..

THE ELEMENTARY ITEMS CAN BE ACCESSED USING THE ITEM-NAME WITH A SUBSCRIPT LIKE MAXTEMPR(1) OR MINTEMPR(N) WHERE N IS A NUMERIC VARIABLE

SINGLE DIMENSION ARRAY

01

WS-REC. 10 DAYNAME PIC X(12). 10 SD-ARRAY OCCURS 10 TIMES. 15 MAXTEMPR PIC 99V9. 15 MINTEMPR PIC 99V9. 15 FILLER PIC X

ACCEPT WS-REC. PERFORM VARYING N FROM 1 BY 1 UNTIL N > 10 DISPLAY MAXTEMPR(N) DISPLAY MINTEMPR(N) END-PERFORM

TWO DIMENSION ARRAYS


DECLARATION OF 2 D ARRAYS 01 WS-REC. 05 ROWS OCCURS 7 TIMES. 10 DAYNAME PIC X(12). 10 COLS OCCURS 24 TIMES 15 MAXTEMPR PIC 99V9. 15 MINTEMPR PIC 99V9. 15 FILLER PIC XX. IS A LOGICAL REPRESENTATION OF

SUNDAY 350360 380390 360390 345365 390400 .. MONDAY 350360 380390 360390 345365 390400 .. TUESDAY 350360 380390 360390 345365 390400 .. WEDNESDAY 350360 380390 360390 345365 390400 .. THURSDAY 350360 380390 360390 345365 390400 .. FRIDAY 350360 380390 360390 345365 390400 .. SATURDAY 350360 380390 360390 345365 390400 .. DAYNAME MUST BE ACCESSED AS A SINGLE DIMESION TEMPRS MUST BE ACCESSED AS A TWO D USING TWO SUBSCRIPTS

2 D CONCEPT
REPETITION OF COLUMNS IS SINGLE DIMENSION REPETITION OF ROWS IS TWO DIMENSION This is a table having columns and rows SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY 350360 380390 360390 345365 390400 .. 350360 380390 360390 345365 390400 .. 350360 380390 360390 345365 390400 .. 350360 380390 360390 345365 390400 .. 350360 380390 360390 345365 390400 .. 350360 380390 360390 345365 390400 .. 350360 380390 360390 345365 390400 ..

TWO DIMENSION ARRAYS


ACCEPTING INPUT INTO 2- D 01 WS-REC. 05 ROWS OCCURS 7 TIMES. 10 DAYNAME PIC X(12). 10 COLS OCCURS 10 TIMES. 15 MAXTEMPR PIC 99V9. 15 MINTEMPR PIC 99V9. 15 FILLER PIC XX. INITIALIZE WS-REC PERFORM VARYING M FROM 1 BY 1 UNTILL M > 7 ACCEPT ROWS (M) END-PERFORM The input in sysin dd * can be given as SUNDAY 350360 380390 360390 345365 390400 .. MONDAY 350360 380390 360390 345365 390400 .. ARRAYS

TWO DIMENSION ARRAYS


01 DISPLAYING VARIOUS ELEMENTS OF 2 D ARRAYS WS-REC. 05 ROWS OCCURS 7 TIMES. 10 DAYNAME PIC X(12). 10 COLS OCCURS 10 TIMES 15 MAXTEMPR PIC 99V9. 15 MINTEMPR PIC 99V9. 15 FILLER PIC XX.

The individual items can be accessed using two subscripts ACCEPT M INDICATING ROW NO ACCEPT N COL NO EX1: DISPLAY MAXTEMPR( M N ) DISPLAY MINTEMPR ( M N )

TWO DIMENSION ARRAYS


SEARCHING THE 2 D ARRAY WITH A CONDITION 01 WS-REC. 05 ROWS OCCURS 7 TIMES. 10 DAYNAME PIC X(10). 10 COLS OCCURS 24 TIMES 15 MAXTEMPR PIC 99V9. 15 MINTEMPR PIC 99V9. 15 FILLER PIC XX.

EX:

PERFORM VARYING M FROM 1 BY 1 UNTIL M > 7 PERFORM VARYING N FROM 1 BY 1 UNTIL N > 24 IF MAXTEMPR( M N ) > 40.0 DISPLAY dayname (m) N END-IF END-PERFORM END-PERFORM.

THREE DIMENSION ARRAYS


DECLARATION OF 3 D ARRAYS 01 WS-REC. 02 WEEKS OCCURS 4 TIMES. 05 DAYS OCCURS 7 TIMES. 10 DAYNAME PIC X(10). 10 COLS OCCURS 24 TIMES 15 MAXTEMPR PIC 99V9. 15 MINTEMPR PIC 99V9. 15 FILLER PIC XX.

Note: The total number of occurrences of days is 4 x 7 = 28 times The total number of occurrences of cols. Is 4 x 7 x 24 = 672 times. The table contains 4 weeks as a single dimension 4 x 7 days as a two dimension and 4 x 7 x 24 cols as a three dimension array.

You might also like