RPG程序简介
RPG 的全称:Report Program Generator
- 能 COPY、修改、编译源代码(RPGLE、CLP),并能运行编译后的程序
- 能 COPY、修改、编译文件(PF、LF、PRTF、DSPF)
- 对数据文件(PF)有简单的认识(FIELD -> RECORD -> PF),并知道 LF 与 PF 的
对应关系
编写 HELLO WROLD
FMT C CL0N01Factor1+++++++Opcode&ExtFactor2+++++++Result++++++++Len++D+HiLoEq
*************** Beginning of data *************************************
0001.00 C 'HELLO WROLD' DSPLY
0002.00 C RETURN
0003.00 C
0004.00 C
****************** End of data ****************************************
调用程序 call + 程序名 屏幕反白出现 “HELLO WORLD”字样
四大部分
其实我们可以将RPGLE 的程序按照部位划分可以分为四个部分
H-Spec
定义的表的格式以及定义具体的时间 做一些解释型的工作
DATFMT (*IS0)
表示这是国际化的意思TIMFT (*ISO)
表示国际化格式含义DATEDIT(YMD)
年月日- 其中H行还可以定义
HDEBUG(*YES)
关键宇控制模块中生成调试工具
F-Spec
内容说明
首先在首行填写上F
然后按 F4
那么就会出现以下内容
-
Filename:
-
- 需要声明的文件名,必须顶格,文件名必须唯一,也就是程序中对同样的文件名不能声
明两次。
- 需要声明的文件名,必须顶格,文件名必须唯一,也就是程序中对同样的文件名不能声
-
File Type:
-
- 声明文件的处理类型
-
- I: 输入型,即只读文件,对声明的文件只取其记录的值,不对记录进行修改
-
- U: 修改型,即对声明的文件进行修改操作(删除记录属于修改操作的一种)
-
- O: 输出型,即只写,对声明的文件只进行写操作。
-
- C:混合型,用于对屏幕文件的定义。(混合型,即输入/输出型,以屏幕文件为例,也就是读取屏幕文件的一些输入字段信息,同时也可以输出一些字段的值到屏幕文件中,但不能对屏幕文件自身进行修改,所以与上面的 U 是有区别的)
-
File Designation:
-
- P:表明声明的文件是主文件
-
- S:表明声明的文件是次文件
-
- T:数组
-
- F:常用文件
-
- R:Record address file
-
End of File:
-
- 程序结束前,对记录的处理方式
-
File Addtion:
-
- 是否会增加文件中的记录,即是否会对文件进行写操作。
-
- 可以不填,或填“A”
-
-
- 当 File Type 为“O”时,系统自动默认此项为“A”,不必填写;
-
-
-
- 当 File Type 为“I”,或“U”时,这项内容可以填“A”,也可以不填。不填,即表示不会增加文件中的记录,也就是没有写操作;填“A”时,即表示会增加文件中的记录,也就是会对文件进行写操作。
-
-
File Format:
-
+文件格式,不能为空,允许的值有:
-
-
- E: 声明的文件,是外部描述的文件
-
-
-
- F: 声明的文件
-
-
这里通常填“E”,即为外部描述文件
-
Record Address Type:
-
- A: 字符型
-
- D:日期型
-
- P :数字型(压缩)
-
- S :非压缩型数字
-
- T : 时间类型
-
- Z :时间戳
-
- B :二进制
-
- F :浮点型
-
- G :图形字符
-
Device:
-
- 声明文件存放的位置 必须填写
-
-
- DISK 磁盘文件 即文件储存在磁盘上
-
-
-
- PRINTER 打印文件 提供打印输出描述
-
-
Keyword:
-
- COMMIT:允许事务控制下处理文件
-
- IGNORE:允许忽略外部描述文件的记录格式
-
- LNCLUDE:文件中包含的所有其他记录被忽略
-
- INFDS: 关键字允许定义和命名数据结构 已包含文件关联的反馈信息
D-Spec
首行填写D
然后在按F4
那么就会出现如下情况:
Name
定义变量的名字 该名字可以不顶格写
E
标识定义的变量是否源自外部数据结构。可以不填,或填“E”
Declaration Type
定义变量的类型,允许的值如下:
- DS: 数据结构,即定义一个结构变量
- C: 常量,常量只能使用字符,不需要定义常量的长度、类型。常量的内容写“Keywords”处,并使用 CONST 关键字,在程序段中,不能对常量进行赋值操作。
- S: 定义以下内容:独立变量、数组、表
From
- 当“Declaration Type”项为“S”时,表示独立变量、数组,此项不填
- 当“Declaration Type”项为“DS”时,表示结构,此项仍然不填
- 当“Declaration Type”项为空时,表示当前定义的变量,属于上面定义的结构,此时,此项可以填写,也可以不填写。
- 当填写时,“From”项表示变量在结构中的起始位置,右对齐;“To/length”表示变量在
结构中的结束位置,也是右对齐。
Length
定义变量的长度
Internal Data Type
定义变量类型,允许的值有:
- A:字符型
- B:二进制
- D:日期型
- F:浮点型
- G:图型
- I:带符号的整数
- N:指示器变量
- P:压缩型数字
- S:普通的数字类型
- T:时间型
- U:无符号的整数
- Z:变量定义为日期+时间型
*
:指针型
Keywords
关键字:可以不填写常用的关键字有如下
- CONST: 定义常量的值
- DIM: 定义数组
- EXTNAME:引用外部文件作为数据结构变量
- EXTFLD: 对引用了外部文件作为数据结构的某个变量,进行重命名
- LIKE: 定义变量时,参照已存在的变量定义
- OCCURS: 定义结构体变量时,指定的结构体变量的记录条数
- INZ: 定义变量时,赋值初始值
Comment
注释项
C-Spec
N01
指示器相关的参数
Factor 1
操作内容一
Operation
操作码
Factor 2
操作内容二
Result
操作结果
Length
长度
Decimal Positions
小数位
本文到此就先告一段落啦(各位加油🤖)