You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RPG程序代码解析及输入输出数据相关疑问求助

RPG程序代码解析

一、ACCS、ACCT、ACC11的输入位置

程序的输入文件定义段(I-spec)里明确了这三个字段在输入记录中的位置:

  • ACCS:输入记录的第19-28位,对应代码行:07022I 19 280ACCS
  • ACCT:输入记录的第29-38位,对应代码行:07022I 29 380ACCT
  • ACC11:输入记录的第39-48位,对应代码行:07022I 39 480ACC11

这些字段属于90字节的INPUT磁盘文件(DISK30),程序通过I-spec定义直接读取对应位置的数据。

二、输入到输出的生成流程

1. 初始化与日期处理

程序启动后先执行Y2K子过程:

  • 调用DATT2获取系统日期存入DATEU
  • 设置日期分隔符SEP1、SEP2为Z,并打开20号指示器

2. 分支范围交互

程序先进入控制台交互流程:

  • 向控制台(DISPFIL)显示提示,要求输入分支的起始(FROM)和结束(TO)编号
  • 校验输入是否为5位数字,无效则直接终止程序
  • 若起始编号大于结束编号,提示错误并重新进入输入环节

3. 输入记录筛选

处理INPUT文件每条记录时,会进行双重筛选:

  • 检查记录的BR字段是否在用户输入的FROM和TO范围内
  • 检查GR00字段是否等于520或550
  • 同时满足两个条件的记录,才会进入输出环节(65号指示器开启)

4. 输出生成

符合条件的记录会生成两类输出:

  • 打印机输出(SYS008):
    依次打印页眉(含日期、分支号)、表头、分隔线,最后打印记录的GR00、ACC00、ACCS、ACCT、ACC11等字段
  • 磁盘输出(OUT):
    将符合条件的整行输入记录(REC1,90字节)直接写入磁盘输出文件

5. 程序终止

所有记录处理完成后,程序自动结束。


内容的提问来源于stack exchange,提问作者Maryam_92k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:07:16