免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2552 | 回复: 5
打印 上一主题 下一主题

CALL PGM(&LPROGRAM) PARM(&TY@) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-09 19:15 |只看该作者 |倒序浏览
CALL       PGM(&LPROGRAM) PARM(&TY@)

请教下,CALL的应该是程序,为什么这里写的是变量?

论坛徽章:
0
2 [报告]
发表于 2006-11-09 19:20 |只看该作者
在CALL程序之前程序名一定要确定下来并且一定要有
你的这种情况应该是根据业务来的。

论坛徽章:
0
3 [报告]
发表于 2006-11-09 19:23 |只看该作者
LPROGRAM是另外一个PF定义的字段

0001.00      A          R RHGLCD                                          
0002.00      A            LNO            1          COLHDG(' Á÷Ë®ºÅ ')   
0003.00      A            LATTR          1          COLHDG(' ÊôÐÔ ')      
0004.00      A            LPROGRAM      10          COLHDG(' ³ÌÐòÃû ')   
0005.00      A            LMAR          40O         COLHDG(' ±¸×¢ ')      
0006.00      A          K LATTR                                          
0007.00      A          K LNO

论坛徽章:
0
4 [报告]
发表于 2006-11-09 19:24 |只看该作者
主程序是这样的:
0001.00              PGM        PARM(&FL &TL &TY@)                           
0002.00              DCL        VAR(&FL) TYPE(*CHAR) LEN(1)                  
0003.00              DCL        VAR(&TL) TYPE(*CHAR) LEN(1)                  
0003.01              DCL        VAR(&TY@) TYPE(*CHAR) LEN(1)                  
0006.00              DCLF       FILE(HGLCD)                                   
0007.00              DCLDTAARA  DTAARA(STKFMSG)                              
0010.00              RCVDTAARA  DTAARA(STKFMSG)                              
0011.00              IF         COND(&STKFMSG *EQ ' ') THEN(DO)               
0012.00  LOOP:       RCVF       DEV(*FILE) RCDFMT(RHGLCD)                     
0012.01              MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(OUT))         
0017.01              IF         COND(&LNO *GE &FL *AND &LNO *LE &TL) THEN(DO)
0017.02              CHGDTAARA  DTAARA(STKFMSG) VALUE('RUN')                  
0018.00              CALL       PGM(&LPROGRAM) PARM(&TY@)

论坛徽章:
0
5 [报告]
发表于 2006-11-09 21:17 |只看该作者
这个程序不断的读取HGLCD里面的纪录,而HGLCD里面的LPROGRAM字段包含的应该就是要被调用到的程序名称,&TY@是上层程序传入的参数,并且会在调用下层程序的时候继续使用这个参数。

论坛徽章:
0
6 [报告]
发表于 2006-11-10 09:23 |只看该作者
这样写也很正常的

举个例子:
我有一个PF文件,里面记录着一个程序各个阶段需要运行的程序名,

那么我CALL 程序名时,程序名是由PF中记录的值来运行,以后如果修改程序名,直接修改PF中的记录就可以了.

这样看具体情况了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP