Colorful Life2010

Tag: RPGLE | 记录数: 5
RPG中数组和DS使用方法总结

ARRAY
一 array与table的区别
        Array:可以使用下标,进行顺序访问或随即访问
        Table:不可以使用下标,只能顺序访问。只能以TABxxx开头。
        注:table虽然和array的功能相似,但是array要比table灵活很多。Table可以淘汰了,了解table的原因是维护老的代码时可能会用到。

二 array的类型和key word
        1有三种类型的array,分别是compile time array、run time array、pre-run time array。
        
        2与array相关的key word:
        DIM(number)         定义数组中元素的数量

RPGLE中REPLACE函数的用法

 

%REPLACE(replacement string: source string{:start position {:source
length to replace}})

%REPLACE returns the character string produced by inserting a replacement string into the source string, starting at the start position and replacing the specified number of characters.

The first and second parameter must be of type character, graphic, or UCS-2 and can be in either fixed- or variable-length format. The second parameter must be the same type as the first.

The third parameter represents the starting position, measured in characters, for the replacement string. If it is not specified, the starting position is at the beginning of the source string. The value may range from one to the current length of the source string plus one.

The fourth parameter represents the number of characters in the source string to be replaced. If zero is specified, then the replacement string is inserted before the specified starting position. If the parameter is not specified, the number of characters replaced is the same as the length of the replacement string. The value must be greater than or equal to zero, and less than or equal to the current length of the source string.

The starting position and length may be any numeric value or numeric expression with no decimal positions.

The returned value is varying length if the source string or replacement string are varying length, or if the start position or source length to replace are variables. Otherwise, the result is fixed length.

RPGLE中DS结构和数组结合的几种方式

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

变量定义以[email protected][email protected]开头,分别带表是数 组还是普通WK变量。

[email protected]        DS         DIM(10) QUALIFIED
 [email protected]        12A    DIM(20)

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

必须加“QUALIFIED"关键字。

[email protected]       DS         DIM(10)
 [email protected]           5A
 [email protected]           5S 0

上 面这个是数组呢,相当于每条记录是由[email protected][email protected]组成的,也就是[email protected]的每条记录是一个10A的变量。

            DS
[email protected]             20A   DIM(10)
 [email protected]            5A   OVERLAY([email protected]:1)  */OR OVERLAY([email protected]:*NEXT)
 [email protected]            5A   OVERLAY([email protected]:6)
 [email protected]           10S 0 OVERLAY([email protected]:11)

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

[email protected]        DS      10A
 [email protected]                1A      DIM(10)

上 面这个就是将变量[email protected]分成一个单个元素长度为1A的数组。

AS400开发便笺

1 ADDLIBLE 追加LIB到现有的编译LIB中
2 ALCOBJ 为 OBJ分配内存
3 CALL 用来调用其他程序
4 CHGDTAARA DATA 域变更
5 CHGJOB 改变JOB的属性
6 CHGLIBL 变更编译时的库
7 CHGPFM 修改程序的相关信息
8 CHKOBJ 查找OBJ
9 CLRPFM 清除物理文件数据
10 CLRSAVF 删除SAVE文件下的内容
11 CPYFRMQRYF 复制QUERY文件到目的库
12 CPYSPLF 把 CALL出来的帐票文件导成数据文件
13 CRTAPW 挂线程序做成
14 CRTBNDCL 编译CLLE文件
15 CRTBNDRPG 编译RPGLE程序
16 CRTCLPGM 编译CL文件
17 CRTDSPF 编译画面文件...

AS400 RPGLE中 LF文件定义及复合LF文件使用