AS400如何编写RPG程序

合集下载

AS400_RPG入门

AS400_RPG入门

一:RPG介绍RPG程序的特点:1.程序的编写对于每一个位置都有明确的定义,所以程序的编写必须在指定的位置开始。

通过使用ILE工具可以进行一些方便的输入。

2. RPG程序的设计针对每一部分都有严格的要求,有相应的规格说明,他们包括a) 配置规格说明(Control Specifications):主要规定了程序的命名,日期格式等信息。

b) 文件描述说明(File Description Specifications):对程序使用到的文件的说明c) 定义说明(Definition Specifications):主要对程序使用的数据进行说明。

d) 输入说明(Input Specifications):主要对文件输入数据进行说明。

e) 计算说明(Calculation Specifications):主要对数据计算和计算顺序的说明。

f) 输出说明(Output Specifications):主要针对数据的输出记录和字段的说明。

g) 子程序说明:包括有三种,对子程序的各种进行进行了定义说明。

3.指示器(Indicators)通常是一个字节,被设置为‘0’或者‘1’,他主要作为程序操作的结果或者进行操作的条件。

好像程序的逻辑开关,决定着程序的流程。

指示器必须在定义规范中进行定义。

RPG VI也有一些系统的指示器,他们一般是两个字符的变量,如LR等。

指示器可以在程序的任何地方使用,也可以在程序中修改他的值。

4.操作代码相当与汇编语言的命令一样,有RPG程序提供一套完整的操作代码,比如读一条数据使用READ ,RPG程序对操作代码进行了分类,比如字符串操作符,数组操作符等。

5.定义描述文件a) 文件服务是程序和IO设备的连接。

系统里的每一个文件都有相应的描述文件,对文件的特性和数据的组织形式进行描述。

如果在程序中要使用IO操作,必须要指定一个描述文件,对IO的设备进行描述。

对于文件的类型,系统支持以下几种:1. 数据库文件(database files):对数据进行持久存储。

AS400开发的简单教程

AS400开发的简单教程

AS400开发的简单教程AS400的开发技术:RPG,DDS,CL。

RPG:1.RPG;2.RPGLE;3.RPG (Free)DDS:1.PF;2.LF;3.DSPF;4.PRTF开发技术介绍RPG:H表:控制规范,提供生成和运行程序的信息。

例如:H DATFMT(*MDY/)F表:文件描述规范。

以F开头,包括程序描述文件和外部描述文件。

文件的打开方式:I,O,U,C。

I:只读方式打开,O:是以输出方式打开,U:是以更新的方式打开,C:是以组合的方式打开(包括输入输出)。

程序描述文件:需要在22列位置:加‘F’。

外部描述文件:需要在22列位置:加‘E’。

并要写明外部文件所在设备(如磁盘文件:DISK),注意:RPG和RPGLE的定义位置不一样例如:F FILENAME IF E K DISK后面可以加上KeyWord例如:F FILENAME IF E K DISK RENAME(R1:R2)K表示此文件用KEY键值检索记录DSPF文件(画面文件)的定义:F DSPFILE CF E WORKSTNPRTF文件(打印文件)的定义:F PRTFILE O E PRINTERD表:定义规范。

以D开头。

可以定义变量,常量,数组,数据结构等常量的定义:定义类型为C变量的定义:定义类型为S数组的定义:关键字可以指定DIM(9);9:表示数组的元素个数数据结构的定义:定义类型为DS例如:常量定义:D CFIELD C CONST('A')变量定义:D FIELD S 8 DIM(2)数据结构:D DS1 DSD Num 1 2D Char 3 3后面可以指定关键字:例如:FIELD S 8 DIM(2):关键字为DIM C表:计算规范。

以C开头。

程序过程部分。

包括Factor1和Factor2和结果,还有操作码。

RPG和RPGLE的写入规范在书写时是固定的,Free格式是自由的。

例如:C A IFEQ 'A'C MOVE 'B' AC ENDIFFree格式:C/FreeIF A='A';A= 'B';EndIF;C/End-FreeEQ:等于LE:小于等于GT:大于GE:大于等于LT:小于NE:不等于操作码:ADD:加,例如:ADD 1 S :S=S+1BEGSR:表示子例程开始ENDSR:表示子例程结束CALLB:调用函数CALLP:调用过程或者程序,例如:CALLP PGMCALL:调用程序,例如:CALL PGM这里CALL,只能CALL *PGM CALLP可以调用*PGM 也可以是*MODULE。

AS400-RPG入门

AS400-RPG入门

AS400-RPG入门一:RPG介绍RPG程序的特点:1.程序的编写对于每一个位置都有明确的定义,所以程序的编写必须在指定的位置开始。

通过使用ILE工具可以进行一些方便的输入。

2. RPG程序的设计针对每一部分都有严格的要求,有相应的规格说明,他们包括a) 配置规格说明(Control Specifications):主要规定了程序的命名,日期格式等信息。

b) 文件描述说明(File Description Specifications):对程序使用到的文件的说明c) 定义说明(Definition Specifications):主要对程序使用的数据进行说明。

d) 输入说明(Input Specifications):主要对文件输入数据进行说明。

e) 计算说明(Calculation Specifications):主要对数据计算和计算顺序的说明。

f) 输出说明(Output Specifications):主要针对数据的输出记录和字段的说明。

g) 子程序说明:包括有三种,对子程序的各种进行进行了定义说明。

3.指示器(Indicators)通常是一个字节,被设置为‘0’或者‘1’,他主要作为程序操作的结果或者进行操作的条件。

好像程序的逻辑开关,决定着程序的流程。

指示器必须在定义规范中进行定义。

RPG VI也有一些系统的指示器,他们一般是两个字符的变量,如LR等。

指示器可以在程序的任何地方使用,也可以在程序中修改他的值。

4.操作代码相当与汇编语言的命令一样,有RPG程序提供一套完整的操作代码,比如读一条数据使用READ ,RPG程序对操作代码进行了分类,比如字符串操作符,数组操作符等。

5.定义描述文件a) 文件服务是程序和IO设备的连接。

系统里的每一个文件都有相应的描述文件,对文件的特性和数据的组织形式进行描述。

如果在程序中要使用IO操作,必须要指定一个描述文件,对IO的设备进行描述。

对于文件的类型,系统支持以下几种:1. 数据库文件(database files):对数据进行持久存储。

RPG AS400程序员培训手册9

RPG AS400程序员培训手册9

8 其它8.1 报表打印在这里,简单说一下报表。

其实据说RPG 设计之初,主要就是为了解决报表问题。

不过发展到现在,在我接触过的系统中,觉得报表在RPG 编程之中反而退居其次,大部分程序都是对数据库中磁盘文件(即PF 文件)的操作。

报表文件其实在某种意义上与普通的磁盘文件很类似,都是有记录格式(Record Format),都可以进行写操作(WRITE),RPGLE 的程序对它们的操作方式也比较雷同。

所不同的是普通的磁盘文件的数据是存储在数据库中,而报表文件WRITE 了之后,是以脱机文件(Spool File)的形式存在。

所以在一个库中,磁盘文件具有唯一性,即不能有同名的磁盘文件;而在同一个输出队列中,同名的报表文件(即生成的脱机文件),允许有多个。

要做一个全新的报表打印,大致上可以分为画报表文件(PRTF),与编写打印程序这两部分。

一、画报表文件(PRTF)1、新建立一个属性为PRTF的文件,然后使用19 进入报表编辑状态。

(即STRRLU)2、定义一个新的记录格式(Record Format):DR + F18 + F10,注意看下方的功能键说明3、在一个记录格式之下,追加内容时,要在新的编辑行前加“CLC”,表示此行的内容,是属于上面记录格式的。

4、编辑行前加:DC:定义常量CF:使当前行的内容居中5、常用功能键:F13:标记/ 取消标记(光标所指的字段)。

多试一下就知道使用方法,可以将同一行的多个相连的字段标记成为一个块(对首尾两个字段操作F13 即可)。

高亮部分表示已被标记的块。

F14:将已标记的块COPY 到光标指定处。

(其实这个我用得不多)F15:将已标记的块MOVE 到光标指定处。

(这个用得不少)F16:删除已标记的块。

(这个用的频率也不少)F11:定义新变量F23:进入当前字段的功能菜单画面6、对新变量的定义,按F11 之后,见到画面如下:Edited length . . . . . . . . . . . . : 1Record format . . . . . . . . . . . . : RCD001Number of keywords . . . . . . . . . : 0Number of indicators . . . . . . . . : 0Type choices, press Enter.Field . . . . . . . . . . . . . . . . FLD001 NameOption indicators . . . . . . . . . . 01-99, N01-N99More indicators . . . . . . . . . . N Y=Yes, N=NoStarting line . . . . . . . . . . . . 1-255Starting position . . . . . . . . . . 6 1-255, +nnLength of data . . . . . . . . . . . 1 1-378, +nn, -nn翻页,还有:Data type . . . . . . . . . . . . . . 1 1=Character2=Zoned3=Floating point4=Open5=Graphic6=Date7=Time8=Time stampDecimal positions . . . . . . . . . . 0-31, +n, -nReference a field . . . . . . . . . . N Y=Yes, N=NoUse referenced values . . . . . . . Y Y=Yes, N=No可以采用直接定义长度、类型的方法,即在第1 页的最末尾,Length of data 处,填上字段长度;如果是字符型,就不需要再填其它内容;如果是数字型,在第2 页Decimal positions 处填上小数位数。

RPG AS400程序员培训手册6

RPG AS400程序员培训手册6

5 CL、CMD其实有关这一章,以及屏幕文件的,在网上已经有很多人写过了,想了想,还是说一下吧。

5.1 CL 程序5.1.1 基本认识简单的理解,CL 程序就是和RPG 相对应的,是控制语言(Control Language)。

类型为CLP、CLLE 的源代码编译出来的程序,都属于CL 程序。

可能还是不够直观,这么说吧,我们在交互式命令行上输入的命令,用程序的方式来执行,这个执行的程序,就是CL 程序。

学过UNIX 的会比较好懂,CL 程序有点类似于SHELL,不过SHELL 是可以直接执行的,而且不用编译;CL 程序需要编译,而且要用CALL 的方式来执行。

不过原理是接近的,都是在程序中直接调用命令行的语句。

所以说,CL 程序其实很好写,只要会输入命令,就可以写CL 程序了。

在编辑CL 程序时,也可以用“命令+ F4”的方式来写,不需要老老实实的整行输入。

CL 程序不像RPGLE 程序,在编写时,可以使用自由格式书写;一行的内容如果太长要,在最末尾处用“+”表示换行举个最简单的例子,比如说新建个名为FHS01CL 的CLP 源程序,代码如下:PGMWRKACTJOBENDPGM编译此程序,然后CALL 之,系统就会执行命令WRKACTJOB,查看当前的活动作业,效果与在交互式命令行下输入WRKACTJOB 是一样的。

当我们输入F12,退出WRKACTJOB 时,系统就会继续向下执行,发现是ENDPGM,表示程序结束了,于是判定执行完毕,退出至交互式画面。

5.1.2 CL 程序的常用语法及命令:一、程序的开始与结束:PGM PARM(&A &B) /* 开始CL 程序*/ENDPGM /* 结束CL 程序*/CL 程序,和RPGLE 程序一样,也可以有程序的入口参数,而且程序的入口参数都是可传递的(也就是输入的参数如果在程序中被修改过,那么原调用的程序中的相应参数也会进行变化。

不过CL 的入口参数只能为字符型,或数字型的单个字段,不能象RPGLE 程序中那么多样化(字段、结构、数组、指针)。

AS400初学入门小结1.0

AS400初学入门小结1.0

AS400初学入门小结1.0一、RPGIV与RPGILE的区别 (1)二、RPGIV特征 (1)三、LIB、SRCPF、PF、LF、MEMBER、OBJECT (1)四、编程注意 (2)五、SEU的几点说明 (2)六、RPGLE程序的编写基础参考 (3)七、指示灯Indicator (4)八、出错查询 (5)九、命令技巧 (5)十、常用命令 (5)十一、中文学习资料 (6)十二、英文学习资料 (7)一、RPGIV与RPGILE的区别RPGIV是种IBM的计算机开发语言。

ILE是个集成语言开发环境。

RPGILE就是在这种集成语言开发环境下的RPGIV的称呼。

ILE的最主要的功能是可以把集成在开发环境下多种不同的计算机开发语言通过module形式,bind一起产生一个程序。

这类似于Java的模块化和组合。

参考资料:/u1/46034/showart_1870290.html二、RPGIV特征1、自由格式;2、module;3、多线程并发处理;4、module可驻留物理内存;5、PROCEDURE;6、服务程序;参考资料:/u1/46034/showart_1673419.html三、LIB、SRCPF、PF、LF、MEMBER、OBJECT刚开始这几个比较容易搞糊涂LIB:library,数据库文件SRCPF:source physical file 源物理文件PF:physical file 物理文件LF:logical file 逻辑文件AS400的结构为LIB->OBJECT->MEMBER,由左往右层次深入。

可以简单的理解为Windows下的文件系统。

LIB就是盘,OBJECT就是文件夹,MEMBER就是文件。

Windows 的盘中不能再建盘,而LIB也是如此,除了一个例外QSYS。

用WRKLIB进去查看QSYS 后可以发现,这个LIB里面还有*LIB的对象。

PF是Object中File的一种。

五、RPG文件建立,编写,调试和运行

五、RPG文件建立,编写,调试和运行
reportprogramgeneratorrpg语言是一种定格式面向过程结构化开发语言它的优点主要体现在可以很方便的对数据库文件进行操作而且效率非常的高它是as400上一种最主要的开发语言之一
五、 RPG文件建立,编写, 调试和运行
iSoftStone Technologies Ltd.
2013-7-15
6
©2005 iSoftStone Technologies Ltd. All rights reserved.
RPG文件建立,编写,调试和运行
四.引用外部文件 例如: FDB01 UF E FDSP01 IF: UF: CF: A: CF E
K
DISK(物理文件和逻辑文件都是disk) WORKSTN
20
©2005 iSoftStone Technologies Ltd. All rights reserved.
RPG文件建立,编写,调试和运行
3. 比较操作: • CABXX: FACTOR1与FACTOR2比较,如果结果为真的话就转移到 RESULT指示的TAG 例如:FieldA CASGE FieldB Subr01 如果FieldA大于或等于FieldB,执行Subr01 • WHEN ( WHENxx ): C SELECT C WHEN *INKA C : C WHEN NOT(*IN01) AND (DAY = 'FRIDAY') C : C WHEN %SUBST(A:(X+4):3) = 'ABC' C : C ENDSL
F X X
30 84
D = -20 E=6 F = 10.0 X = 0027.7000 X = -200.0000
G = 2.77

AS400_RPGLE

AS400_RPGLE

Syntax Checking
Listing of Source Code
& Errors
Creat RPG Program CRTBNDRPG
(Compile RPG Source)
*PGM
Program Object
Test RPG Program by Executing
*FILE
Source File
RPGⅣ中的命名和保留字(1)
合法字符包括:
l 字母:A,……Z26个英文字母,允许小写,编译时改为大写 l 数字:0-9 l 特殊字符:+ - * , . ‘ & / $ # : @ _ 〉〈 = ( ) % l 空格
规则:
l 名字的第一个字符必须是字母或$、#、@等,其余字符必须是字母或数字,包括下划线_。 l 名字左对齐输入,除非允许浮动(D表、键字、扩充因子2) l 不允许是保留字 l 1-10个字符 l 名字必须唯一
RPG的发展过程
•1960 RPG作为商用软件开发工具 •1970 System/36-System/38
RPGⅡ(RPT) •1990 AS/400
OPM RPG/400(RPGⅢ) •现在 ILE RPG/400(RPGⅣ)
RPGⅣ中的基本概念
RPG/400 (Report Program Generator)特点: • 1.编码的格式 • 2.程序周期 • 3.使用指示器 • 4.操作码
FEmp_ReportO E
PRINTER OFLIND(*IN73)
FEMP_MAST IF E DISK
DType
S
8
DCount
S
30
C
WRITE HEADING

AS400基本命令和操作

AS400基本命令和操作

数据描述规‎范D DS通‎过文件的记‎录字段仅一‎次的说明,可定义多种‎访问路径,多个程序使‎用。

结构化查询‎语言SQL‎/400组成‎:(1)SQL运行‎支持程序(2)SQL预编‎译程序(3)SQL交互‎式接口(4)DB2 QUERY‎MANAG‎E R FOR AS/400,提供菜单、填空式提示‎的交互式接‎口,允许建立、增加、维护数据,和运行报表‎PDM(PROGR‎A MMIN‎G DEVEL‎O PMEN‎T MANAG‎E R)处理源代码‎、对象和库SEU(SOURC‎E ENTRY‎UTILI‎T Y)建立和编辑‎源文件成员‎S TRSE‎USDA(SCREE‎N DESIG‎N AID)交互式设计‎、创建和维护‎应用屏幕RLU(REPOR‎T LAYOU‎T UTILI‎T Y)交互式定义‎打印报表的‎格式分布DFU(DATA FILE UTILI‎T Y)快速定义、创建面向数‎据录入、查询或文件‎维护STR‎DFUQUERY‎/400获取‎外部描述数‎据库文件信‎息S TRQ‎R YCL(CONTR‎O L LANGU‎A GE)调用AS/400的所‎有系统功能‎。

简化操作,控制工作流‎程,设置作业运‎行环境等AS/400三级‎存储结构库(LIBRA‎R Y)——数据库文件‎(F ILE)——成员(MEMBE‎R)一级目录——二级目录——三级目录字段是用来‎描述某一属‎性的一组值‎;字段定义是‎对字段属性‎的说明记录是把一‎组字段放在‎一起命名,用来说明某‎一事物;记录格式是‎对记录中所‎有字段的简‎单说明以及‎对各字段排‎序的说明文件是已命‎名的一组记‎录,文件说明是‎对文件所有‎的记录格式‎和存取路径‎的说明,数据库文件‎分为数据文‎件和源文件‎,数据文件就‎是程序中使‎用的物理文‎件和逻辑文‎件。

物理文件(*FILE,PF-DTA):在SQL中‎称做表(TABLE‎),含有系统实‎际存储的数‎据,每个物理文‎件只有一个‎固定长度的‎记录格式。

AS400编码规范文档

AS400编码规范文档

1.命名规则1.1.源文件库的命名根据系统简称对源文件库进行命名,格式:XXXSRCLIBXXX:系统代码简称,英文字母表示;1.2.目标库的命名根据系统简称对目标库的进行命名,格式:XXXOBJLIBXXX:系统代码简称,英文字母表示,跟源文件库的系统代码XXX一致。

1.3.文件的命名1.3.1.源文件在AS/400上所编写的Member大致可分为:RPG程序(Report Program Generator)、CL程序Command Language)、物理文件(Physical File)、逻辑文件(Logical File)、显示文件(Display File)、打印文件(Printer File),分类将这些Member放置在不同的源物理文件(Source Physical File)下,方便管理和查找。

根据Member的类型对源文件进行命名,格式:YYYBBBSRCYYY:项目功能模块代码简称,英文字母表示;BBB:源文件Member类型。

例如:YYYRPGSRC:存放RPGLE、RPG源程序;YYYDDSSRC:存放PF、LF、DSPF、PRTF源程序;YYYCLSRC:存放CLP、CLLE源程序。

1.3.2.源文件成员在同一个项目开发过程中,新建立的物理文件、逻辑文件、显示文件、打印文件、程序的源文件成员名开头字符应一致,根据项目代码来定义,这样比较有利于统计,备份及移植工作。

所有成员必须加于描述说明(Text),以便了解其用途或功能。

对于成员的修改,要进行版本控制。

1.根据文件或程序功能对源文件成员进行命名,格式:YYYUUUUZ9BAYYY:表示项目功能代码简称,英文字母表示;UUUU:尽量采用能表达出功能或用途的英文缩写,物理文件和逻辑文件为3位,其他最多为4位;Z:Member类型描述;R:RPGLE程序C:CL程序P:物理文件L:逻辑文件D:显示文件S:打印文件9:顺序号(1-9),只有逻辑文件定义且按顺序取。

AS400开发初阶

AS400开发初阶

AS/400开发初阶1OS/400 (3)1.1基本系统概念 (3)1.2作业 (3)1.3程序开发 (4)1.3.1PDM介绍 (4)1.3.2AS/400的源码编辑器 (5)1.3.3AS/400的程序 (6)2DB2/400简介 (8)2.1DDS简介 (8)2.2创建一个物理文件PF (8)2.3创建一个逻辑文件LF (9)2.4DB2的常工具 (9)3RPG语言 (9)3.1H定义 (10)3.2F数据库引用 (10)3.3D数据定义 (10)3.3.1定义格式 (11)3.3.2例子 (11)3.4C计算逻辑 (12)3.4.1常用C源码结构 (12)3.4.2程序参数 (13)3.4.3子例程 (13)3.4.4调用其他程序 (13)3.4.5程序分支 (13)3.4.6程序退出 (15)3.4.7数据库操作 (15)3.4.8常用RPG操作码 (17)4后台业务系统开发 (19)4.1联机交易 (19)4.1.1交易调试 (19)1OS/4001.1 基本系统概念●对象AS/400的操作对象称为:Object。

Object包括的信息:1.包含该对象的库2.对象名3.对象类型(*PGM,*FILE,…)4.对象的属性(对于*FILE,有LF,PF-DTA,PRTF,DSPF)5.拥有该对象的用户权限AS/400的对象由(库/对象名/对象类型)唯一确定。

查看某对象:WRKOBJ●库库也是一种对象,相当于AS/400的目录。

DOS目录有多级,即目录下有目录。

但库只有一级,库下不能有库。

AS/400的文件系统只有3级:库->文件->成员;例如在APPLIB库下有APPPF的文件,表示为APPLIB/APPPF。

创建库:CRTLIB●库列表相当于作业的工作目录,类似于DOS的PA TH当前作业库列表的常用命令:dsplibledtlibladdlible●汉字支持使用汉字支持:CHGSYSLIBL QSYS2989不使用汉字支持:CHGSYSLIBL LIB(QSYS2989) OPTION(*REMOVE)●命令菜单OS/400中,进入一个菜单,用go menuName查看某一相关的命令go CMDxxx xxx代表命令含义的缩写,例如想看与库有关的命令,go cmdlib1.2 作业⏹概念作业:AS/400所有程序运行以JOB方式命令:wrkactjob子系统(subsystem):在OS/400中的一个作业运行环境,该运行环境定义一定的资源,如CPU,内存,IO等。

第二章 ILE中的RPG编程

第二章    ILE中的RPG编程

1.2 第二章 ILE中的RPG编程ILE RPG/400是集成语言环境中的RPGⅣ编程语言工具。

它是AS/400系统上先进的ILE 编译程序之一。

ILE是AS/400系统上的一种新的编程方式。

它是AS/400增强机器结构和OS/400操作系统功能的结果。

ILE编译程序家族包括:ILE RPG/400、ILE C/400*,ILE COBOL/400*,和ILE CL,图5描绘了操作系统支持ILE而做的改进。

它说明了对原始程序模式(OPM)和扩展程序模式(EPM)语言的支持。

OS/400ILE OPM EMPRPG RPGCOBOL COBOL PASCALBASICCL CL FORTRANC PL/1图5 集成语言环境及其在操作系统中的地位ILE的RPG用户在以下应用开发领域实现了改进和加强。

程序建立程序管理程序调用源语句调试可连接的应用程序接口(API S)以上几个方面内容在下面做简要介绍,详细讨论请看以后章节。

1.2.1 程序建立在ILE中,程序建立包括。

1、把源代码编译为模块。

2、把一个或多个模块连接成为一个程序目标。

你可以使用建立连接的RPG程序命令(CRTBNDRPG),象在OPM环境中一样用一步处理方式来建立一个程序,这条命令先建立一个临时模块,然后再连接成程序目标,也允许你使用一个连接目录来连接其它的目标。

另外,你可以分别使用编译和连接命令来建立程序。

这种两步的处理方式允许重复使用或更新一个模块而不用重新编译程序中的其它模块。

另外,由于你可以连接任何ILE语言的模块,所以就可以建立和维护多种语言的程序。

用两步处理方式,你可以使用建立RPG模块命令(CRTRPGMOD)来建立模块目标,这条命令把源语句编译成为模块目标。

模块是不可运行的目标,必须把它们连接为程序才能运行,连接一个或多个模块应使用建立程序命令(CRTPGM)。

也可以把模块连接成为服务程序,服务程序是把可调用的子例程装配成独立连接的程序目标的一种方法。

AS400如何编写RPG程序

AS400如何编写RPG程序

AS400如何编写RPG程序As400如何编写RPG程序1. 写给刚接触AS/400的朋友 --- 如何建立库、文件和成员鉴于很多朋友都还是刚接触AS/400,我就从系统登陆开始简单说说吧~打开AS/400仿真终端(可以是PCOM、CA等软件,如何配置就不说了),输入用户名和密码,进入系统。

如果你的权限足够的话,可以使用CRTLIB命令给自己建个库,如:CRTLIB LIB(MYLIB) TYPE(*TEST) TEXT('for test') 库建好之后,你可以使用STRPDM->2,在Library处输入库名MYLIB,按确认键就进入该库。

这时库下面没任何文件,你可以使用CRTSRCPF命令建立一个源物理文件,用来放置源码,如: CRTSRCPF FILE(MYLIB/MYSRCPF) IGCDTA(*YES) TEXT('源物理文件') 【注:】参数IGCDTA(*YES)表示该源物理文件里头的源码文件都可以使用中文到此为止,自己存放源码的地方已经生成,你可以直接使用以下命令直接进入该源物理文件: WRKMBRPDM FILE(MYLIB/MYSRCPF)进入该文件之后,就可以建立任何源码文件了,按F6,显示“Start Source Entry Utility(STRSEU)”画面,参数说明如下:1. Source member:表示建立的成员名,我们把它理解成存放源码的文件就可以,类似WINDOW平台的TXT文件;2. Source type:表示建立的成员名的类型,如果不确定,可按 F4 查看,常用类型有(1)PF: 物理文件;(2)LF: 逻辑文件;(3)RPG: RPG程序源码文件;(4)RPGLE: RPGLE程序源码文件;(5)DSPF: 显示文件;(6)CLP: CLP程序源码文件;(7)CMD: 命令文件……3. Text 'description':表示对该文件的描述,可填可不填。

AS400基本操作

AS400基本操作

【新客网AS400教程】CL基本命令系统操作常使用的指令(AS/400 指令均是从英文单字取 3 个字, 如 Work with Active Job ==> WRKACTJOB)1. WRKACTJOB(整个系统)WRKJOB(单一工作)检示系统目前的使用状态有那些 Jobs 正在运行 , CPU 使用情形及更改Jobs 属性(运行等级先后次序), 回操作或程序错误讯息, 检示单一Job 的运行状态,亦可终止 JOB运行(End Job).2. WRKWTRSTRPRTWTRENDWTR打印机治理 (Wrok with Writer)打印机激活 (Start Printer Writer)打印机终止 (End Writer)3. WRKSYSSTS(Work with System Status)检示系统资源 RAM 目前的使用状态.可动态调整资源的分配以取得系统运行最佳化.4. WRKSPLF(Work with Spooled File)报表指定打印印表机, 储存, 删除.5. WRKJOBSCDE(Work with Job Schedule Entery)设定工作排程时间6. Go Power设定开关机时间7. SAVLIB (Save Library)SAVOBJ(Save Object)储存程序馆 --> RSTLIB : 回复程序馆储存对象 --> RSTOBJ : 回复对象8. WRKCFGSTS *LIN(线路)(Work with Configuration Status)WRKCFGSTS *CTL(控制器)WRKCFGSTS *DEV(工作站)检示及治理激活或终止通信线路使用情形 , 且会自动带出远程控制器及工作站使用情形.Status 状态Vary on pending 等待联机Varied On 已联机系统处理中Active 正常作业中Varied Off 切断联机 , 此时无法联机 , 需要将线路(Line),控制器(Controller),工作站(Device)设定至 Vary on pending 才可以联机.在将显示(Display)工作站 Varied Off 前 , 先从画面检视该工作站是否仍有残存 Job 挂在该工作站 , 若有则需将 Job 强迫结束 (ENDJOB) ,否则无法将工作站 (Device) 及及控制器 (Controller) Varied Off. 显示(Display)工作站在被 Varied on 后 , 状态会由 Varied off --> Vary on pending , 此时若该显示(Display)工作站有开机, 状态会由 Vary on pending --> Signondisplay, 若 User 输入 ID 及 Password , 系统会以该显示(Display)工作站名称产生 Job, 状态会由 Signondisplay--> Active.在将印表机(Printer)工作站 Varied Off 前 , 先从画面检视该工作站是否仍有 Writer 挂在该工作站 , 若有则需将 Writer 强迫结束(ENDWTR) ,否则无法将工作站 (Device) 及控制器 (Controller) Varied Off.印表机(Printer)工作站被 Varied on 后 , 状态会由 Varied off --> Vary on pending ,此时若该印表机(Printer)工作站有开机, 状态会由 Vary on pending --> Varied On , 待激活印表机(STRPRTWTR)后 ,系统会以该印表机(Printer)工作站名称于 QSPL 子系统下产生印表机(Printer)工作站 Job , 状态会由 Varied on --> Active.9. STRPDM激活 AS/400 程序开发工具WRKLIBPDM 针对整个链接库所有对象WRKOBJPDM 针对链接库之单一对象WRKMBRPDM 针对档案数据成员以上功能均可对对象(档案)作建立, 复制, 搬移, 删除10. CPYF(Copy File)拷贝档案数据成员, 可新增或取代记录11. WRKMSGQ (*QSYSOPR)(Work with Message Queue)检示及回复系统讯息12. INZTAP(Initialize Tape)DSPTAP(Display Tape)格式化磁带显示磁带内容13. WRKSBMJOB(Work with Submitted Job)检示批次作业状态14. WRKOUTQ(Work With Out Queue)检示报表暂存区 , 报表暂存区须要指定至印表机 , 并激活该印表机(STRPRTWTR)才可印表 . 每台打印机均有一对应之报表暂存区.15. WRKJOBQ(Work With Job Queue)检示待执行之批次工作暂存区 , 在暂存区排队之工作须要等待系统分配何时执行 , 采先进先出16. WRKOBJLCK(Work with Object Lock)检示对象有无被其它作业使用或对象被何作业锁住, 将之排除17. CALL执行程序18. SNDBRKMSG(Send Break Message)送出立即讯息(此命令会中断使用者操作画面盖住 , 并将讯息显示在画面)18. CHGJOB(Chang Job)更改工作属性, 如运行等级(Running Priority)19. DSPLOG (Display Log)检示系统历史数据记录20. CRTSRCPF(Create Source Physical File)建立存放程序(QCLSRC,QRPGSRC,QCBLSRC), 画面及报表格式(QDDSSRC) , 数据库格式定义(QDDSSRC)之 Source 档案21. CRTPF(Create Physical File)使用数据库格式定义(QDDSSRC)之 Source member 建立数据库22. STRDFU激活维护数据库工具, 可新增 ,修改 ,查询 ,删除单笔数据23. STRSDA (Start Screen Design Aid)激活编修画面格式工具并产生画面 Source24. STRSQL激活数据浏览查询工具 ,可一次新增 ,修改 ,查询 ,删除多笔数据25. STRRLU(Start Report Layout Utility)激活报表格式产生工具26. STRSEU(Start Source Entry Utility)激活 Source 编辑工具27. CRTDSPF(Create Display File)使用画面格式(QDDSSRC) ,建立画面供程序使用28. CRTPRTF(Create Printer File)使用报表格式(QDDSSRC) ,建立报表档供程序使用28. CRTCLPGM(Create CL Program)使用程序源文件(QCLSRC)内成员,建立 CL(Control Language) 应用程序29. CRTRPGPGM(Create RPG Program)使用程序源文件(QRPGSRC)内成员,建立 RPG 应用程序30. CRTCBLPGM(Create Cobol Program)使用程序源文件(QCBLSRC)内成员,建立 COBOL 应用程序31. GO LICPGM安装或查询系统及系统应用程序32. DSPPTF查询系统目前已上那些 PTF , (PTF 如同 PC 之 Service Pak)33. DSPMSG QSYSOPR检视系统是否有不正常讯息或响应讯息系统治理 : 要检示系统目前有那些硬件资源 , 执行 WRKHDWSRC(Work with Hardware Resource) 或 WRKHDWPRD (Work with Hardware Product) 可列出系统目前的硬件资源.如硬盘 , 通讯适配卡 , Local 控制器....等.。

IBM_AS400_RPG学习手册

IBM_AS400_RPG学习手册

IBM_AS400_RPG学习手册1 简单说明 (3)2 程序代码行的编写 (3)2.1 最简单的RPGLE程序 (3)2.2 举例准备 (3)2.3 简单的程序流程 (4)2.4 常见的程序流程 (5)2.5 F行说明 (5)2.5.1 内容说明 (5)2.5.2 常用例子 (9)2.5.3 补充说明 (10)2.6 D行说明 (10)2.6.1 内容说明 (10)2.6.2 常用例子 (13)2.6.3 补充说明 (14)2.7 入口参数 (14)2.8 C行说明 (16)2.8.1 写在前面 (16)2.8.2 内容说明 (17)2.8.3 ILE操作码分类: (18)2.8.4 ILE操作码 (19)2.8.4.1 A--C (19)2.8.4.2 D--E (27)2.8.4.3 F--N (32)2.8.4.4 O--R (39)2.8.4.5 S--Z (43)3 和程序相关的数据库知识 (49)3.1 LF(逻辑文件) (49)3.1.1 逻辑文件概念 (49)3.1.2 有关编译的问题 ..................................................... 错误!未定义书签。

3.1.3 逻辑文件对效率的影响 (51)3.2 MEMBER (51)3.3 游标 (52)3.3.1 游标的概念 (52)3.3.2 不同操作码对应的游标的处理 (52)3.3.3 “有且仅有”的游标 (53)3.3.4 LOV AL、HIV AL对应的游标操作 (53)3.4 事务处理-- COMMIT (54)3.4.1 概念描述 (54)3.4.2 使用方法 (54)3.4.3 注意事项 (55)3.5 关于锁表的问题LCKW (56)4 DEBUG调试以及常见出错信息 (56)4.1 写在前面 (56)4.2 常规用法 (57)4.2.1 程序编译 (57)4.2.2 执行DEBUG命令 (57)4.2.3 运行程序 (57)4.2.4 在DEBUG模式中进行调试 (58)4.2.5 跟踪被当前程序调用的程序 (58)4.2.6 一定要退出DEBUG模式 (59)4.2.7 补充 (59)4.3 跟踪批处理程序( From qingzhou) (60)4.4 常见的出错信息 (60)4.4.1 编译程序时的出错信息 (60)4.4.2 运行时的出错信息 (62)5 CL、CMD (62)5.1 CL程序 (62)5.1.1 基本认识 (62)5.1.2 CL程序的常用语法及命令: (63)5.1.3 不常用的语法 (65)5.2 CMD (66)6 屏幕文件及使用 (67)7 其它 (67)7.1 报表打印 (72)7.2 SA VF,备份与恢复 (77)7.3 菜单--MENU (78)7.4 开发时常用的命令 (78)7.5 一点想法 (81)1简单说明内部交流、或可作培训使用。

AS400基本操作及常用命令

AS400基本操作及常用命令

目录未找到目录项。

1AS/400基本操作AS/400用户接口满足各种用户的需求,无论他们是新用户、数据管理人员、系统管理员、或程序员。

用户可以灵活的使用OS/400提供的多种方法,对系统进行操作。

如果用户并不了解显示屏幕或如何启动任务,通过AS/400帮助功能,在任何屏幕上都可使用帮助。

帮助的信息包括整个屏幕的信息到现实屏幕上个别项目的信息。

AS/400系统还提供相应国家语言,支持用户以其所在国家的语言作为与系统的接口。

1.1屏幕显示AS/400系统提供一些不同的显示屏幕作为其用户接口的一部分。

组成用户接口的显示屏幕类型有:菜单(MENU)输入(ENTRY)列表(LIST)帮助(HELP)登录画面用于用户注册:使用用户名和口令Sign OnSystem . . . . . :S101766GSubsystem . . . . :QINTERDisplay . . . . . :PC5250User . . . . . . . . . . . . . . USERPassword . . . . . . . . . . . .USERProgram/procedure . . . . . . . .Menu . . . . . . . . . . . . . .Current library . . . . . . . . .进入系统后,首先会看到的显示屏幕就是菜单1.1.1菜单用户可以使用菜单选择他们想执行的任务,而不需使用系统命令,如图:MAIN AS/400 Main Menu菜单名System:S101766G Select one of the following:1. User tasks2. Office tasks3. General system tasks4. Files, libraries, and folders 菜单选项5. Programming6. Communications7. Define or change the system8. Problem handling9. Display a menu90. Sign offSelection or command===> 命令行F3=Exit F4=Prompt F9=Retrieve F12=Cancel F13=Information AssistantF23=Set initial menu 功能键提示Type option number or command. 状态条使用菜单之间的导航器,可以不用知道系统命令,也可以完成相应的操作。

as400常用操作

as400常用操作

AS400常用操作手册1、关于表的操作1.1、数据库表的拷贝wrkobj: 输入要查找的目标、库,执行。

(wrkobj obj(gjjtemp/czyb) 在目标窗口输入3,执行,修改要拷贝到的目标库,同时Duplicate data 选YES,执行。

然后使用grtobjaut进行赋权。

Grtobjant 执行,输入object、lib、object type(all)、users(要赋权者)、authority(*all)。

Grtobjaut obj(gjgrdta/czfzb) objtype(*all) user(gjgr) aut(*all)注意:如目标在要拷贝到的库中存在,则不能覆盖,必须先删除。

1.2、如何在400上修改某条记录UPDDTA: 输入逻辑文件名,则可以按照逻辑文件键字检索记录,然后修改。

如输入物理文件名,则检索出所有记录,不能定位到某条记录,只能一条一条翻阅到要修改记录,然后修改,此时如果记录很多,太不方便。

1.3、为表添加日志STRJRNPF FILE(GJDWDTA/LBJQCB)JRN(GJDWDTA/GJJJRN) IMAGES(*BOTH)1.4、去掉表的日志(ENDJRNPF)Journaled physical file . . . . > *ALL Name, *ALLLibrary . . . . . . . . . . . Name, *LIBL, *CURLIB+ for more valuesJournal . . . . . . . . . . . . > GJJJRN Name, *FILELibrary . . . . . . . . . . . > GJGRDTA Name, *LIBL, *CURLIB 1.5、清空表数据CLRPFMclrpfm GJDWDTA/ltqsjb1.6、如何在两台服务器之间传递数据例如将810机器上的gjgrdta库中sbgqcb中的数据传送到270机器上的gjdwdta库中的sbgqcb中:在810机器上执行如下操作:1)CHGDDMF-> F4:DDM FILE 项填写:TESTDDMLIBRARY填写:QGPLRemote file:File 处填写SBGQCBLibrary填写GJDWDTA执行2)CPYF->F4:From file 处填写SBGQCBLibrary处填写GJGRDTATo file 处填写TESTDDMLibrary 处填写QGPLReplace or add records 处填写*ADD执行。

AS400编程基础

AS400编程基础


字 アイウエオ顺
ABC顺
0<1<2<3...…<9
数组
定义
➢ 在E仕样书中定义数组 ➢ 数组下标从1开始
数组名
E
KIN 4 11 0
操作
数组共有
四个元素
➢ XFOOT(数组中所有元素相加)
元素长度为11位, 小数部分位数为0
➢ LOKUP(找数组中是否有相同值,成功时标识为
‘C 1’K)IN,1 ADD KIN,2 KIN,4
RPG仕样书的种类(1)
H仕样书
用于指定程序生成时的各种机能 如:日期定义,yy-mm-dd或mm-dd-yy
F仕样书
描述程序用到的所有文件 如:数据库文件,印刷文件,画面文件。
E仕样书
描述程序用到的数组(配列),TABLE。
L仕样书(不常用)
定义印刷设备上标准用纸的行数和换页行数
RPG仕样书的种类(2)
➢ 四则运算
当标识90为‘1’时,才执行MOVE运算命令
当标识90为‘0’时,才执行Z-ADD运算命令
用例: 90
MOVE *BLANK A
N90
Z-ADD*ZERO
B
➢ DO命令
当标识90为‘1’时,执行DO到END之间的命令
用例: 90
DO

➢ 子程序
END
当标识90为‘1’时,才执行子程序运算调用命令
C
ADD KIN,3 KIN,4
C
XFOOTKIN KIN,4
成功时标
C0
LOKUPKIN,I
11
识11为
运行时的数组
定义
➢ 在E仕样书中定义数组 ➢ 数组下标从1开始

RPG AS400程序员培训手册

RPG AS400程序员培训手册

2.8.4.4 O--RON-ERROR (On-Error)没用过OPEN {(E)} (Open File for Processing) 打开文件Factory 1 Operation Factory 2 Result HI LO EQOPEN 文件名OPEN 后面的目标,必须是在当前程序中已声明的文件名(不是文件的记录格式名),而且在OPEN 操作之后,在程序结束之前之前,必须有对应的CLOSE 操作。

使用OPEN 操作,文件在声明时,必须使用USROPN 关键字(详见D 行说明)。

ORxx (Or) 逻辑判断—或Factory 1 Operation Factory 2 Result HI LO EQFLD01 IFGT FLD03FLD01 OREQ FLD02等价于IF FLD01>FLD03 OR FLD01=FLD02与IF、IFxx,AND、ANDxx 类似,RPGLE 的写法OR,比RPG 的写法ORxx 要灵活,而且可以用来表达一些复杂的逻辑关系。

有鉴于此,所以通常IF 语句中,我会以OR 为主,基本不用ORxx。

如果在编程序方面,公司/项目组无硬性要求,那我觉得还是少用ORxx 吧,总觉得这种写法的逻辑关系看起来不直接,尤其是有很复杂的AND,OR 时。

OTHER (Otherwise Select) 分支语句的判断与分支语句SELECT 一起使用,表示不符合上述所有条件时的操作,如下:Factory 1 Operation Factory 2 Result HI LO EQSELECTWHEN 条件判断1处理语句1WHEN 条件判断2处理语句2OTHER处理语句3ENDSL在这个例子中,当满足条件判断1 时,运行处理语句1,运行结束后跳至ENDSL 处;如果不满足条件判断1,则程序继续向下执行,判断是否满足条件判断2。

当满足条件判断2 时,运行处理语句2,跳至ENDSL;当不满足当不满足条件判断2 时,程序继续向下执下,当读到OTHER 操作码时,无条件运行处理语句3(即当程序当前不满足以上所以条件判断时,则执行OTHER 之后的语句。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AS400如何编写RPG程序As400如何编写RPG程序1. 写给刚接触AS/400的朋友 --- 如何建立库、文件和成员鉴于很多朋友都还是刚接触AS/400,我就从系统登陆开始简单说说吧~打开AS/400仿真终端(可以是PCOM、CA等软件,如何配置就不说了),输入用户名和密码,进入系统。

如果你的权限足够的话,可以使用CRTLIB命令给自己建个库,如:CRTLIB LIB(MYLIB) TYPE(*TEST) TEXT('for test') 库建好之后,你可以使用STRPDM->2,在Library处输入库名MYLIB,按确认键就进入该库。

这时库下面没任何文件,你可以使用CRTSRCPF命令建立一个源物理文件,用来放置源码,如: CRTSRCPF FILE(MYLIB/MYSRCPF) IGCDTA(*YES) TEXT('源物理文件') 【注:】参数IGCDTA(*YES)表示该源物理文件里头的源码文件都可以使用中文到此为止,自己存放源码的地方已经生成,你可以直接使用以下命令直接进入该源物理文件: WRKMBRPDM FILE(MYLIB/MYSRCPF)进入该文件之后,就可以建立任何源码文件了,按F6,显示“Start Source Entry Utility(STRSEU)”画面,参数说明如下:1. Source member:表示建立的成员名,我们把它理解成存放源码的文件就可以,类似WINDOW平台的TXT文件;2. Source type:表示建立的成员名的类型,如果不确定,可按 F4 查看,常用类型有(1)PF: 物理文件;(2)LF: 逻辑文件;(3)RPG: RPG程序源码文件;(4)RPGLE: RPGLE程序源码文件;(5)DSPF: 显示文件;(6)CLP: CLP程序源码文件;(7)CMD: 命令文件……3. Text 'description':表示对该文件的描述,可填可不填。

上面的参数填好之后,即进入源码编辑环境,可以写代码了。

代码写完之后:1. 如果要保存并且退出编辑器,按F3,出现“Exit”画面,参数Change/create member置为Y即可。

2. 如果只想保存而不想退出的话,在编辑器的顶端的命令行输入SAVE,按确认键即可。

3. 如果要放弃更改,那么在编辑器的顶端的命令行输入CAN,按确认键即可。

以上整个过程,介绍了登陆系统、建立库、建立源物理文件、建立成员(即源码文件)的过程。

有欠妥之处,请不吝赐教~1RPG开发步骤1、建立数据库和源物理文件。

CRTLIB 和 CRTSRCPF。

2、在SEU输入源语句建立相关的PF、LF、DSPF。

PF~物理文件 LF~逻辑文件DSPF~显示文件。

3、用CRTPF、CRTLF、CRTDSPF命令建立物理文件、逻辑文件、显示文件、4、在SEU中输入源语句(RPG源语句),按照H、F、D、I、C、O顺序输入,其中H~指控制规范表,F~文件描述规范表,D~定义规范表、I~输入规范表、C~计算规范表、O~输出规范表。

5、建立程序:CRTPGMRPG 如果编译通过的话,则可以用 CALL 程序名,来调用程序。

小提示:如果发现建立文件时,出现找不到某某的信息时,请先用EDTLIBL 把文件的LIB 加入。

写给刚接触RPG的朋友 --- 如何编写RPG程序(1)这部分我也循序渐进的讲解如何RPG里头更项的含义。

先说说RPG一般用来做什么吧,举例说:1. 整个RPG程序不包含任何外部程序,只是做些简单的数学运算,或者对数据区、DATAQ等非文件目标进行操作,这属于相对最简单的情况;2. RPG程序对物理文件或者逻辑文件进行读、写、更新、删除操作;3. RPG程序结合物理文件或逻辑文件、以及显示文件进行操作,这属于比较复杂的情况;4. RPG程序结合物理文件或逻辑文件、显示文件、以及ICF文件(即通讯文件)进行操作,这种情况也比较复杂。

当然,以上的情况只是平时使用的归纳,你也可以根据自己的实际需要结合各种情况,此处不再深入探讨。

以下结合例子简单说说各种情况,假设以下源码文件存放的路径是库MYLIB、源物理文件MYSRCPF1. (1)做个简单的运算,比如AXB/(C-D)+E,有加减乘除等运算,代码如下:.....CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments+ +++*************** Beginning of data*************************************C Z-ADD2 A 10C Z-ADD10 B 20C Z-ADD5 C 10C Z-ADD1D 10C Z-ADD2 E 10C Z-ADD0 TEM 30C Z-ADD0 RST 30C A MULT B TEMC C SUBD RST2C TEM DIV RST RSTC MVR TEM2 30C RST ADDE RSTC RSTDSPLY .....CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComment s++++C SETON LR****************** End of data**************************************** 【注】(a) Z-ADD表明把Factor2处的变量值赋给Result处的变量,值得注意的是这两个变量都是数值型的,例如,"Z-ADD2 A 10 "表示把2赋给变量A,后面的"10"中的“1”表示变量A的长度是1,“0”表示小数位长度是0,即A是一个长度为1整型变量;(b) MULT表示做乘法运算,“A MULT B TEM”表示AXB,把结果赋给整型变量TEM;(c) SUB表示做减法运算,“C SUB D RST”表示C-D,把结果赋给整型变量RST;(d) DIV表示做除法运算,“TEM DIV RST RST”表示TEM/RST,把结果赋给整型变量RST;(e) MVR表示做取余数运算,“MVR TEM2 30”表示把余数赋给整型变量TEM2;(f) ADD表示做取加法运算,“RST ADD E RST”表示RST+E,把结果赋给整型变量RST,这句一般写成“ADD E RST”也可以。

(g) DSPLY表示显示变量值,“RST DSPLY”表示显示变量RST的值;(h) SETON表示给指示器置为*ON的状态,即'1',“SETON LR”表示把LR指示器置为*ON,该句的意思表示最后一条记录,即程序结束。

按F3保存,假设该文件名是MYRPG,所在的库是MYLIB,源物理文件是MYSRCPF。

程序写好之后,应该进行编译了。

用WRKMBRPDM FILE(MYLIB/MYSRCPF),找到刚才的文件MYRPG,输入14,按F4,进入“Create RPG/400 Program (CRTRPGPGM)” 画面,参数: (i) Program: 生成的目标名(假如为MYOBJ);(ii) Library: 生成的目标存放的库(假如为MYLIB)。

参数填好之后,按确认键即进行编译,如果程序没错,则生成目标文件,假设为MYOBJ。

在命令行输入CALL MYLIB/MYOBJ,这时命令上应该显示RST的值。

(【注】目标即可执行文件)续《写给刚接触RPG的朋友 --- 如何编写RPG程序(1)》上文中,只举例说明了如何进行简单的数学运算,下面再举一例子讲解如何操作数据区(DATAARA)和数据队列(DTAQ)。

============================================================31. (1) 如何建立数据区(DATAARA)【注:下面只建立*CHAR型的数据区,其他类型的有兴趣可以自己试试】: 在系统命令行输入CRTDTAARA,按F4,进入“Create Data Area (CRTDTAARA)”画面,参数如下:(a) Data area: 数据区的名字,这里假设为MYDTAARA;(b) Library: 存放数据区的库,默认值是*CURLIB,即当前库,这里我们输入MYLIB;【注】MYLIB库之前的文章里头已建立,这里不再重复讲述了,如果还不知道如何建立,请参考《写给刚接触AS/400的朋友 --- 如何建立属于自己的库、文件和成员》(c) Type: 数据区的类型,*DEC数值型,*CHAR字符型,*LGL逻辑型,*DDM分布式数据管理(这个我没用过),这里我们选择*CHAR;(d) Length: 数据区的长度,这里假设是20,当然你可以根据自己需要输入对应的长度值;(e) Decimal positions: 指小数位位数,一般是针对*DEC型的才需要设置;(f) Initial value: 数据区初始值,可填可不填,我们这里选择不填,在程序里进行更改;(g) Text: 注释。

整个命令请参考如下:CRTDTAARA DTAARA(MYLIB/MYDTAARA) TYPE(*CHAR) LEN(20)TEXT('建立属于自己的数据区MYDTAARA')(2)在RPG里如何操作数据区,假设该源码文件名为DTAARAR,存放在MYLIB/MYFILE下:Columns . . . : 1 71 Edit MYLIB/MYFILESEU==> DTAARARFMT DS .....IDsname....NODsExt-file++.............OccrLen+.................... *************** Beginning of data *******************************0001.00 I#DTA DS 20 FMTJ ......I....................................PFromTo++DF i e ld+L1M1FrPlMnZr. 0002.00 I 1 8 CURDAT 0003.00 I 11 16 CURTME FMTC .....CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEq 0004.00 C *NAMVAR DEFNMYDTAARA #DTA0005.00 C *LOCK IN #DTA 0006.00 C TIME DATTME 1400007.00 C MOVEDATTME CURDAT0008.00 C MOVELDATTME CURTME0009.00 C OUT #DTA 0010.00 C UNLCK#DTA40011.00 C SETON LR****************** End of data********************************【注】(a) 第一行#DTA是字段名,与上面的Dsname左对齐,DS表示#DTA是个字段,与上面的Ds对齐,20表示字段#DTA的长度,与上面的Len+右对齐,注意,由于我们需要用它来定义数据区MYDTAARA的格式,所以长度要和MYDTAARA相同,整行的意思是定义一个长度20的字段#DTA;(b) 第二第三行进一步详细定义字段#DTA的内部结构,第二行的CURDAT是字段名,与Field+左对齐,1与From右对齐,8与To++右对齐,整行的意思是把大字段#DTA的第1,8位定义位另一个字段,第三行同样的意思,在此不在赘述; (c) 第四行的DEFN表示定义,一般用来定义字段和数据区,*NAMVAR是定义数据区格式时必用的参数,整行的意思就是把数据区MYDTAARA的格式按照字段#DTA定义,以后对字段#DTA进行操作就等于对数据区MYDTAARA进行操作;(d) 第五行的IN用来读数据区,*LOCK表示操作时把数据区MYDTAARA锁住,一般只有对数据区进行更新操作才需要设置才参数,如果只是读数据区,则不用该参数;(e) 第六行的TIME是取系统当前日期和时间,整行的意思是把系统当前日期和时间赋给一个14位长0位小数的数值型变量DATTME中,由于系统当前的日期和时间是按照“hhmmssMMDDYYYY”存放,所以甘好也是14位;(f) 第七行意思是把变量DATTME右移给字段CURDAT,所以CURDAT的值甘好是日期“MMDDYYYY”;(g) 第八行意思是把变量DATTME左移给字段CURTME,所以CURTME的值甘好是日期“hhmmss”;(h) 第九行的OUT表示对数据区进行写操作,记住Factor处是我们程序开始定义的大字段#DTA;(i) 第十行的UNLCK表示解锁,因为我们在第五行使用了参数*LOCK;(j) 第十一行表示程序结束。

相关文档
最新文档