Examples of DEFINE DATA Statement Usage

#### Search Results

Search

# Examples of DEFINE DATA Statement Usage

The following topics are covered:

- Example 1 - DEFINE DATA LOCAL (Local Data Definition)

- Example 2 - DEFINE DATA LOCAL (Array Definition/Initialization)

- Example 3 - DEFINE DATA (View Definition, Array Redefinition)

- Example 4 - DEFINE DATA (Global, Parameter and Local Data Areas)

- Example 5 - DEFINE DATA (Initialization)

- Example 6 - DEFINE DATA (Variable Array)

## Example 1 - DEFINE DATA LOCAL (Local Data Definition)

    ** Example 'DDAEX1': DEFINE DATA
    ************************************************************************
    DEFINE DATA LOCAL
    1 #VAR1     (A15)
    1 #VAR2
      2 #VAR2A  (N4.1) INIT <1111>
      2 #VAR2B  (N6.2) INIT <222222>
    1 REDEFINE #VAR2
      2 #VAR2C  (A2)
      2 #VAR2D  (A2)
      2 #VAR2E  (A6)
    END-DEFINE
    *
    WRITE NOTITLE '=' #VAR2A / '=' #VAR2B /
                  '=' #VAR2C / '=' #VAR2D / '=' #VAR2E
    *
    END

#### Output of Program DDAEX1:

    #VAR2A:  1111.0
    #VAR2B:  222222.00
    #VAR2C: 11
    #VAR2D: 11
    #VAR2E: 022222

## Example 2 - DEFINE DATA LOCAL (Array Definition/Initialization)

    ** EXAMPLE 'DDAEX2': DEFINE DATA (array definition/initialization)
    ************************************************************************
    DEFINE DATA LOCAL
    **=============================================
    1 #A01 (A5/1:4) INIT        <'A','B',,'D'>
    1 #A02 (A5/1:4) INIT  (V)   <'A','B'>
                          (4)   <'D'>
    1 #A03 (A5/1:4) INIT  (*)   <'A'>
    1 #A04 (A5/1:4) INIT  (2)   <'B'>
                          (3)   <'C'>
    1 #A05 (A5/1:4) INIT  (2:3) <'X'>
                          (4)   <'D'>
    1 #A06 (A5/1:4) INIT  (*)   <'X'>
                          (3)   <'C'>
    **---------------------------------------------
    1 #A10 (A5/1:4) INIT        FULL LENGTH <'X'>
    1 #A11 (A5/1:4) INIT        FULL LENGTH <,'B',,'D'>
    1 #A12 (A5/1:4) INIT  (V)   FULL LENGTH <'A','B'>
    1 #A13 (A5/1:4) INIT  (2)   FULL LENGTH <'B'>
    1 #A14 (A5/1:4) INIT  (*)   FULL LENGTH <'X'>
    **---------------------------------------------
    1 #A20 (A5/1:4) INIT        LENGTH 2    <'A'>
    1 #A21 (A5/1:4) INIT  (2)   LENGTH 2    <'B'>
                          (3)   LENGTH 3    <'C'>
    1 #A22 (A5/1:4) INIT  (3:4) LENGTH 2    <'X'>
    1 #A23 (A5/1:4) INIT  (V)   LENGTH 2    <,'B',,'D'>
    **---------------------------------------------
    1 #A30 (A5/1:4) INIT  ALL             <'Z'>
    1 #A31 (A5/1:4) INIT  ALL FULL LENGTH <'Z'>
    1 #A32 (A5/1:4) INIT  ALL LENGTH 2    <'Z'>
    **=============================================
    1 #B01 (A5/1:2,1:4) INIT (2,V)   <'A','B',,'D'>
    1 #B02 (A5/1:2,1:4) INIT (1,*)   <'X'>
                             (1,2)   <'B'>
                             (2,3)   <'F'>
    1 #B03 (A5/1:2,1:4) INIT (1,1:2) <'X'>
                             (1,4)   <'Y'>
    1 #B04 (A5/1:2,1:4) INIT (V,1)   <'A1','A2'>
    1 #B05 (A5/1:2,1:4) INIT (V,*)   <'X','Y'>
    **---------------------------------------------
    1 #B10 (A5/1:2,1:4) INIT ALL   <'Z'>
    1 #B11 (A5/1:2,1:4) INIT (1,*) FULL LENGTH <'Z'>
    1 #B12 (A5/1:2,1:4) INIT (*,*) FULL LENGTH <'Z'>
    1 #B13 (A5/1:2,1:4) INIT (1,*) LENGTH 2    <'Z'>
    1 #B14 (A5/1:2,1:4) INIT (1,V) FULL LENGTH <'A',,'C'>
                             (2,V) FULL LENGTH <'E','F'>
    1 #B15 (A5/1:2,1:4) INIT (1,*) FULL LENGTH <'X'>
                             (2,*) FULL LENGTH <'Y'>
                             (2,4) FULL LENGTH <'Z'>
    *
    END-DEFINE
    **=============================================
    WRITE 7X '(1)   (2)   (3)   (4)'
    WRITE (AD=V) '=' #A01(*)
    WRITE (AD=V) '=' #A02(*)
    WRITE (AD=V) '=' #A03(*)
    WRITE (AD=V) '=' #A04(*)
    WRITE (AD=V) '=' #A05(*)
    WRITE (AD=V) '=' #A06(*)
    SKIP 1
    WRITE (AD=V) '=' #A10(*)
    WRITE (AD=V) '=' #A11(*)
    WRITE (AD=V) '=' #A12(*)
    WRITE (AD=V) '=' #A13(*)
    WRITE (AD=V) '=' #A14(*)
    SKIP 1
    WRITE (AD=V) '=' #A20(*)
    WRITE (AD=V) '=' #A21(*)
    WRITE (AD=V) '=' #A22(*)
    WRITE (AD=V) '=' #A23(*)
    SKIP 1
    WRITE (AD=V) '=' #A30(*)
    WRITE (AD=V) '=' #A31(*)
    WRITE (AD=V) '=' #A32(*)
    SKIP 1
    **=============================================
    WRITE 6X '(1,1) (1,2) (1,3) (1,4)  (2,1) (2,2) (2,3) (2,4)'
    WRITE (AD=V) '=' #B01(1,*) 2X #B01(2,*)
    WRITE (AD=V) '=' #B02(1,*) 2X #B02(2,*)
    WRITE (AD=V) '=' #B03(1,*) 2X #B03(2,*)
    WRITE (AD=V) '=' #B04(1,*) 2X #B04(2,*)
    WRITE (AD=V) '=' #B05(1,*) 2X #B05(2,*)
    SKIP 1
    WRITE (AD=V) '=' #B10(1,*) 2X #B10(2,*)
    WRITE (AD=V) '=' #B11(1,*) 2X #B11(2,*)
    WRITE (AD=V) '=' #B12(1,*) 2X #B12(2,*)
    WRITE (AD=V) '=' #B13(1,*) 2X #B13(2,*)
    WRITE (AD=V) '=' #B14(1,*) 2X #B14(2,*)
    WRITE (AD=V) '=' #B15(1,*) 2X #B15(2,*)
    **=============================================
    END

#### Output of Program DDAEX2:

## Example 3 - DEFINE DATA (View Definition, Array Redefinition)

    ** Example 'DDAEX3': DEFINE DATA (view definition, array redefinition)
    ************************************************************************
    DEFINE DATA LOCAL
    1 EMPLOY-VIEW VIEW OF EMPLOYEES
      2 NAME
      2 ADDRESS-LINE (A20/2)
      2 PHONE
    *
    1 #ARRAY    (A75/1:4)
    1 REDEFINE #ARRAY
      2 #ALINE  (A25/1:4,1:3)
    1 #X        (N2) INIT <1>
    1 #Y        (N2) INIT <1>
    END-DEFINE
    *
    FORMAT PS=20
    LIMIT 5
    FIND EMPLOY-VIEW WITH NAME = 'SMITH'
      MOVE NAME            TO #ALINE (#X,#Y)
      MOVE ADDRESS-LINE(1) TO #ALINE (#X+1,#Y)
      MOVE ADDRESS-LINE(2) TO #ALINE (#X+2,#Y)
      MOVE PHONE           TO #ALINE (#X+3,#Y)
      IF  #Y = 3
        RESET INITIAL #Y
        PERFORM PRINT
      ELSE
        ADD 1 TO #Y
      END-IF
      AT END OF DATA
        PERFORM PRINT
      END-ENDDATA
    END-FIND
    *
    DEFINE SUBROUTINE PRINT
      WRITE NOTITLE (AD=OI) #ARRAY(*)
      RESET #ARRAY(*)
      SKIP 1
    END-SUBROUTINE
    *
    END

#### Output of Program DDAEX3:

    SMITH                    SMITH                    SMITH
    ENGLANDSVEJ 222          3152 SHETLAND ROAD       14100 ESWORTHY RD.
                             MILWAUKEE                MONTERREY
    554349                   877-4563                 994-2260

    SMITH                    SMITH
    5 HAWTHORN               13002 NEW ARDEN COUR
    OAK BROOK                SILVER SPRING
    150-9351                 639-8963

## Example 4 - DEFINE DATA (Global, Parameter and Local Data Areas)

    ** Example 'DDAEX4': DEFINE DATA (global and local data area definition)
    ************************************************************************
    DEFINE DATA
    GLOBAL
      USING DDAEX4G
    LOCAL
    1 #FIELD1 (A10)
    1 #FIELD2 (N5)
    END-DEFINE
    *
    MOVE 'HELLO' TO #FIELD1
    MOVE 123     TO #FIELD2
    *
    CALLNAT 'DDAEX4N' #FIELD1 #FIELD2
    *
    END

#### Global Data Area DDAEX4G Used by Program DDAEX4:

    1 GLOBAL-FIELD                     A   10

#### Subprogram DDAEX4N Called by Program DDAEX4:

    ** Example 'DDAEX4N': DEFINE DATA PARAMETER (called by DDAEX4)
    ************************************************************************
    DEFINE DATA
    PARAMETER
    1 #FIELDA (A10)
    1 #FIELDB (N5)
    END-DEFINE
    *
    WRITE '=' #FIELDA '=' #FIELDB
    END

#### Output of Program DDAEX4:

    Page      1                                                  05-01-12  08:55:53

    #FIELDA: HELLO      #FIELDB:    123

## Example 5 - DEFINE DATA (Initialization)

    ** Example 'DDAEX5': DEFINE DATA (initialization)
    ************************************************************************
    DEFINE DATA LOCAL
    1 #START-DATE (D)   INIT <*DATX>
    1 #UNDERLINE  (A50) INIT FULL LENGTH <'_'>
    1 #SCALE      (A65) INIT LENGTH 65 <'....+..../'>
    END-DEFINE
    *
    WRITE NOTITLE #START-DATE (DF=L)
                / #UNDERLINE
                / #SCALE
    END

#### Output of Program DDAEX5:

    2005-01-12
    __________________________________________________
    ....+..../....+..../....+..../....+..../....+..../....+..../....+

## Example 6 - DEFINE DATA (Variable Array)

    ** Example 'DDAEX6': DEFINE DATA (variable array with (1:V))
    ************************************************************************
    DEFINE DATA LOCAL
    1 #ARRAY   (A1/1:10)
    1 #MAX-ARR (P3)
    END-DEFINE
    *
    #ARRAY (1) := 'R'
    #ARRAY (2) := 'E'
    #ARRAY (3) := 'D'
    #MAX-ARR   := 4
    *
    WRITE #ARRAY(*)
    *
    CALLNAT 'DDAEX6N' #ARRAY(1:4) #MAX-ARR
    *
    WRITE #ARRAY(*)
    *
    *
    #MAX-ARR   := 5
    *
    CALLNAT 'DDAEX6N' #ARRAY(1:5) #MAX-ARR
    *
    WRITE #ARRAY(*)
    *
    END

#### Subprogram DDAEX6N Called by Program DDAEX6:

    ** Example 'DDAEX6N': DEFINE DATA (variable array with (1:V))
    ************************************************************************
    DEFINE DATA
    PARAMETER
    1 #STRING (A1/1:V)
    1 #MAX    (P3)
    END-DEFINE
    *
    IF #MAX = 4
      MOVE 'B' TO #STRING (1)
      MOVE 'L' TO #STRING (2)
      MOVE 'U' TO #STRING (3)
      MOVE 'E' TO #STRING (4)
    END-IF
    *
    IF #MAX = 5
      MOVE 'W' TO #STRING (1)
      MOVE 'H' TO #STRING (2)
      MOVE 'I' TO #STRING (3)
      MOVE 'T' TO #STRING (4)
      MOVE 'E' TO #STRING (5)
    END-IF
    END

#### Output of Program DDAEX4:

    Page      1                                                  05-01-12  09:06:43

    R E D
    B L U E
    W H I T E

### On this page

- Example 1 - DEFINE DATA LOCAL (Local Data Definition)
- Example 2 - DEFINE DATA LOCAL (Array Definition/Initialization)
- Example 3 - DEFINE DATA (View Definition, Array Redefinition)
- Example 4 - DEFINE DATA (Global, Parameter and Local Data Areas)
- Example 5 - DEFINE DATA (Initialization)
- Example 6 - DEFINE DATA (Variable Array)