CL : Faites vos Data Structures

Depuis la V5.4 il est possible de créer des Data Structure en CL, en combinant les mots-clés STG(*DEFINED) et DEFVAR() sur l'instruction DCL.

STG(*DEFINED) indique que vous définissez l'emplacement mémoire pour la variable.
DEFVAR(&maVariable pos) indique que la variable commence à la position pos de la variable &maVariable.

DS RPG :

   D CustData     DS
   D   AmtDue                1      5p 2
   D   Name                  6     26a
   D   Address              27     51a
   D   City                 52     65a
   D   State                66     67a
   D   Postal               68     77a

 

DS équivalente en CL :

   DCL VAR(&CustData) TYPE(*CHAR) LEN(77)
   DCL VAR(&AmtDue)   TYPE(*DEC)  LEN(9 2) STG(*DEFINED) DEFVAR(&CustData 1)
   DCL VAR(&Name)     TYPE(*CHAR) LEN(25)  STG(*DEFINED) DEFVAR(&CustData 6)
   DCL VAR(&Address)  TYPE(*CHAR) LEN(25)  STG(*DEFINED) DEFVAR(&CustData 27)
   DCL VAR(&City)     TYPE(*CHAR) LEN(15)  STG(*DEFINED) DEFVAR(&CustData 52)
   DCL VAR(&State)    TYPE(*CHAR) LEN(2)   STG(*DEFINED) DEFVAR(&CustData 66)
   DCL VAR(&Postal)   TYPE(*CHAR) LEN(10) STG(*DEFINED) DEFVAR(&CustData 68)