AS400-RPG-01

本文介绍了RPG编程语言的基本组成部分,包括H-Spec(数据格式和时间定义)、F-Spec(文件声明与处理)和C-Spec(指示器参数和运算符),帮助读者理解RPG程序结构和文件管理。
摘要由CSDN通过智能技术生成

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

小数位

本文到此就先告一段落啦(各位加油🤖)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敏姐儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值