免费注册 查看新帖 |

Chinaunix

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

如何将以主文件P和次文件S为周期控制的程序改为以全过程文件F人为来控制周期的程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-19 10:57 |只看该作者 |倒序浏览
请问如何将“以主文件P和次文件S为周期控制的程序”改为以“全过程文件F人为来控制周期”的程序,请各路高手指点,十分感谢!

论坛徽章:
0
2 [报告]
发表于 2007-07-19 13:16 |只看该作者
看问题,你可能没有搞明白P文件和S文件的关系。

曾经有个面试问题:


rpg程序中c表是否一定存在?


如果你能回答这个问题,你就能解答自己提出的上述问题。

如果不能,我有空,最近一段时间我在某业务中会有些时间,我会回答上述问题。

[ 本帖最后由 passthru 于 2007-7-19 13:18 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-07-19 13:35 |只看该作者
我不知道,还是告诉我们吧,不要再吊胃口了,谢谢。

论坛徽章:
0
4 [报告]
发表于 2007-07-19 13:45 |只看该作者
原帖由 李海隽 于 2007-7-19 13:35 发表
我不知道,还是告诉我们吧,不要再吊胃口了,谢谢。


你能回答“rpg程序中c表是否一定存在?”

论坛徽章:
0
5 [报告]
发表于 2007-07-19 13:50 |只看该作者
我不知道,在平常的应用中我还没有接触过没有c表的rpg,我也没有想过查过这方面的文档,惭愧!

论坛徽章:
0
6 [报告]
发表于 2007-07-19 14:15 |只看该作者
原帖由 李海隽 于 2007-7-19 13:50 发表
我不知道,在平常的应用中我还没有接触过没有c表的rpg,我也没有想过查过这方面的文档,惭愧!


留点时间和空间,让他人参与回答。如果总是一个人玩,就太没有意思了。

下午没有人回答搂主问题,晚上我回宾馆后再发帖子。

论坛徽章:
0
7 [报告]
发表于 2007-07-19 14:16 |只看该作者
FCUSTL01   IPE  E           K DISK               
FQPRINT    O    F  132        PRINTER                                          
OQPRINT    D                        1            
O                       CUS#                10   
O                       CUSNAM              50   
O                       CUSAD1              90                     

只用 P, O 表应该也可以。
P 表作为主文件, O 表输出。

你可以将 IP 修改为 IF , 然后用 SETLL 或者 CHAIN 去自己用条件读取 FILE .

论坛徽章:
0
8 [报告]
发表于 2007-07-19 16:10 |只看该作者
下面例子就就更能说明问题:

FCUSTL01   IPE  E           K DISK               
FCUSTL02   IS    E           K DISK               
FCUSTL03   O     E              DISK
E ...建立CUSTL01与CUSTL02的对应索引关系
               
OCUSTL03    D                        1            
O                       CUS#                  10                /* CUSTL01中字段 */
O                       CUSNAM              50                /* CUSTL01中字段 */
O                       CUSAD1               70               /* CUSTL01中字段 */
O                       Balance          d 100               /* CUSTL02中字段 */

P文件CUSTL01是驱动程序,顺序读出一条记录,系统就自动读出CUSTL02的对应记录,输出表就自动合并输出记录到CUSTL03。直到CUSTL01读操作文件结束,从而程序结束。

如果改为全过程文件F,可以在C表中加入:

/FREE
         Read CUSTL01;
         dow not %eof;
            Chain   CUS#   CUSTL02;
            If %found ;
                Fld31 = CUS#;
                Fld32 = CUSNAM;
                Fld33 = CUSAD1;
                Fld34 = Balance;
                Write CUSTL03;
              Endif;
            Read CUSTL01;
         Enddo;
/End-Free
。。。。。。
*错误处理例程
/COPY 。。。

[ 本帖最后由 passthru 于 2007-7-19 16:14 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2007-07-19 16:47 |只看该作者
不好意思,“E ...建立CUSTL01与CUSTL02的对应索引关系”这句话是什么意思,rpg4里可以用e表吗?
我以前没有这么用过,都是用EXCEPT向o表写纪录。

论坛徽章:
0
10 [报告]
发表于 2007-07-19 17:56 |只看该作者
原帖由 李海隽 于 2007-7-19 16:47 发表
不好意思,“E ...建立CUSTL01与CUSTL02的对应索引关系”这句话是什么意思,rpg4里可以用e表吗?
我以前没有这么用过,都是用EXCEPT向o表写纪录。


只要是rpg程序都可以使用E表、I表。只是,早期的rpg程序员,比较遵循IBM的programming recycle。E表中可以设置记录级的对应关系。具体用法只能找rpg3以前的操作手册。我2001年以后就再也没有写过E表的操作了。2002年之后,用I表写过程序接口。

当设置了P文件,except就可以省略,随着读出P文件的每一条记录,程序就会自动执行相应的操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP