急啊 求高人告诉我 如何在CL 中给RPGの PGM 传数组参数
本帖最后由 tophighfox 于 2010-03-15 10:19 编辑
我现在有本程序要用CLLE来传参数 CALL它
其中有两个参数 是数组参数 如何来在CL 把数组传进去 求高人指教阿
CL代码如下: PGM
DCL VAR(&CL01) TYPE(*DEC) LEN(7 0) VALUE(1100312)
DCL VAR(&CL02) TYPE(*CHAR) LEN(1) VALUE('1')
DCL VAR(&CL03) TYPE(*DEC) LEN(10) VALUE(9000230001)
DCL VAR(&CL04) TYPE(*DEC) LEN(3) VALUE(111)
STRCMTCTL LCKLVL(*CHG) CMTSCOPE(*JOB)
MONMSG MSGID(CPF8351)
CALL PGM(PRE900023/CXMDB02) PARM(&CL01 &CL02 +
&CL03 &CL04 )
ENDCMTCTL
MONMSG MSGID(CPF8350)
ENDPGM
现在要把 DCL VAR(&CL03) TYPE(*DEC) LEN(10) VALUE(9000230001)
DCL VAR(&CL04) TYPE(*DEC) LEN(3) VALUE(111)
这两个参数变成数组传进去
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
回复 3# tophighfox
大家一起学习!
啊 万分感谢
回复 1# tophighfox
和正常的传递一样,系统会自动将参数的值平分到被调程序中数组的每个元素中,例如:
cl程序:testcl
pgm
dcl &ary *char len(10) value('0123456789')
call pgm(testr) parm(&ary)
endpgm
rpgle程序:testr
Dary s 1 dim(10)
*entry plist
parm ary
...
eval *inlr='1'
以上的程序执行后,testr程序中ary数组的值为ary(1)等于0,ary(2)等于1,其他依次类推。
,如果testr中ary的被定义为如下:
D ary s 2 dim(10)
那么ary的前五个元素有正确的值,后五个元素的值为乱码!