Colorful Life2010

Tag: 配列 | 记录数: 1
RPGLE中DS结构和数组结合的几种方式

最近的项目中不段的用到配列(数组),二维配列以及DS等。将几种定义方式及区别列举如下:

变量定义以T@或W@开头,分别带表是数 组还是普通WK变量。

T@ARR        DS         DIM(10) QUALIFIED
 T@SUBARR        12A    DIM(20)

上 面这个就是一个二维数组,相当于DB中的横向20个字段,记录有10条。

必须加“QUALIFIED"关键字。

T@ARR       DS         DIM(10)
 W@SUB1           5A
 W@SUB2           5S 0

上 面这个是数组呢,相当于每条记录是由W@SUB1和W@SUB2组成的,也就是T@ARR的每条记录是一个10A的变量。

            DS
T@ARR             20A   DIM(10)
 T@ARR1            5A   OVERLAY(T@ARR:1)  */OR OVERLAY(T@ARR:*NEXT)
 T@ARR2            5A   OVERLAY(T@ARR:6)
 T@ARR3           10S 0 OVERLAY(T@ARR:11)

上 面的也是T@ARR的每条记录由三个变量组成,但上面这种定义方法,可以将三个变量也形成一个DIM(10)的数组,这样对于DB中有规律的重复字段来说 就很有用。

W@STR        DS      10A
 T@ARR                1A      DIM(10)

上 面这个就是将变量W@STR分成一个单个元素长度为1A的数组。