AS400开发入门By adan.docx
- 文档编号:8962609
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:47
- 大小:48.04KB
AS400开发入门By adan.docx
《AS400开发入门By adan.docx》由会员分享,可在线阅读,更多相关《AS400开发入门By adan.docx(47页珍藏版)》请在冰豆网上搜索。
AS400开发入门Byadan
AS/400开发介绍
1.1AS/400应用开发概述3
1.1.1数据描述规范(DDSdatadescriptionspecification)3
1.1.2DB2QUERYMANAGERANDSQLDEVELOPMENTKIT支持的结构化查询语言SQL/4003
1.1.3APPLICATIONDEVELOPMENTTOOLSET/400(ADTS/400)开发工具包中有PDM、SEU、SDA、RLU、DFU等4
1.PDM(ROGRAMMINGDEVELOPMENTMANAGER)4
2.SEU(SOURCEENTRYUTILITY)4
3.SDA(SCREENDESIGNAID)4
4.RLU(REPORTLAYOUTUTILITY)4
5.DFU(DATAFILEUTILITY)5
1.1.4QUERY/4005
1.1.5CL(控制语言)编程5
1.2DDS及文件操作说明6
1.2.1AS/400数据库结构6
1.字段及字段定义6
2.记录及记录格式6
3.数据库文件及文件说明6
4.成员7
1.2.2建立物理文件7
1.建立一个库TEST一个源文件TESTSRCF7
2.通过SEU开发工具进行交互式定义源物理文件8
3.建立物理文件8
4.数据输入9
5.字段参考文件9
1.2.3建立逻辑文件9
1.逻辑文件的结构可以很简单,也可很复杂。
主要有四类:
9
2.简单逻辑文件定义9
3.建立逻辑文件,可通过CRTLF命令来建立逻辑文件(编译)10
1.3RPG语言10
1.3.1结构化程序语言10
1.3.2操作码11
1.算术运算11
2.赋值操作12
3.比较操作:
12
4.程序操作:
13
5.调用和转移操作:
14
6.文件操作:
14
7.信息操作:
17
8.说明操作:
18
9.数据区操作18
10.其它操作:
19
1.3.3ILERPG对RPG/400的扩充20
1.ILERPG基本概念20
过程(PROCEDURE)20
模块对象(MODULE)20
ILE程序20
服务程序20
联编目录21
对程序和过程的调用21
活动组(ActivationGroup)22
2.表达式的使用及可使用表达式的操作码23
表达式中的有效操作符23
表达式中结果字段的数据类型24
表达式中的数据精确度24
可用表达式的操作码25
3.内嵌式函数及新增、改变的操作27
内嵌式函数27
新增操作码28
新增位操作30
新增日期、时间操作31
改变了一些操作码的写法36
附:
RPGIII与RPGIV的实体名称长度区别36
4.可视化调试(源级调试)36
开始调试程序:
36
结束调试:
37
调试命令:
37
1.4举例38
1.4.1学生成绩管理38
1.建库、源文件、物理文件成员、逻辑文件成员并编译成员38
2.分别用DFU、SQL、和通过RPGLE程序对学生学籍进行增加、修改、查询、删除记录操作38
3.编写程序实现某年段学生成绩的基本管理39
1.1AS/400应用开发概述
数据描述规范(DDSdatadescriptionspecification)
AS/400的操作系统OS/400提供一种描述数据属性的方法DDS,它可以在程序外部方便、有效地对数据属性进行描述。
AS/400有两种定义数据的方法:
(1)程序描述文件:
文件在记录的描述仅包含一个记录名和记录长度,任何程序使用这种方式描述的文件必须为记录中的每个字段提供字段级属性(字段名、数据类型、字段长度等)定义,此中类型文件不常用
(2)外部描述文件:
文件包含记录的详细字段描述和有关文件如何被访问的信息,在程序中只要指明该文件为外部描述文件即可,当程序目标建立时,编译器自动从文件中抽取信息到程序中,且转换为高级语言适合的语法,它的显著特点之一是克服了程序描述文件的缺点,通过文件的记录字段仅一次的说明,可定义多种访问路径,多个程序使用。
DB2QUERYMANAGERANDSQLDEVELOPMENTKIT支持的结构化查询语言SQL/400
SQL/400是SQL的DB2/400实现,可以交互式地输入大部分SQL语句或把它们嵌入到高级语言(RPGLE、COBOL、CLE等)程序中,替代高级语言内置的读、写和修改等指令。
SQL/400主要由以下部分组成:
(1)SQL运行支持程序,提供对SQL语句的分析及对运行任何SQL语句的支持功能,是OS/400的一个部分,它允许含有SQL语句的应用程序在没有安装DB2QUERYMANAGERANDSQLDEVELOPMENTKIT特许程序的系统上运行。
(2)SQL预编译程序,处理嵌入SQL语句的应用程序
(3)SQL交互式接口,支持用交互式建立和运行SQL语句
(4)DB2QUERYMANAGERFORAS/400,提供菜单、填空式提示的交互式接口,允许建立、增加、维护数据,和运行报表
APPLICATIONDEVELOPMENTTOOLSET/400(ADTS/400)开发工具包中有PDM、SEU、SDA、RLU、DFU等
1.PDM(PROGRAMMINGDEVELOPMENTMANAGER)
可以用来处理源代码、对象和库。
为程序员建立源文件成员、访问SEU和许多其他有用的工具提供方便。
STRPDM:
直接到PDM菜单
WRKLIBPDM:
可以指定操作哪一个库或对当前库列表进行操作
WRKOBJPDM:
指定操作某一库下的所有对象(可按名称、类型选取)
WRKMBRPDM:
指定操作某一库下某一源文件下的所有或部分成员
2.SEU(SOURCEENTRYUTILITY)
是一个全屏幕编辑工具,可以建立和编辑源文件成员,当启动时,能够输入新的源语句,修改、删除、复制、移动已存在的源语句,具有语言相关提示和语法检查功能,且具有分屏编辑/浏览功能。
STRSEU:
可以对原有成员进行编辑或建立新成员,对原有成员进行编辑也可通过在WORKWITHMEMBERSUSINGPDM(WRKMBRPDM)屏幕上使用选项2(EDIT)功能来实现,当然,建立新成员也可以通过在WORKWITHMEMBERSUSINGPDM(WRKMBRPDM)屏幕上使用F6(CREATE)功能键来实现。
3.SDA(SCREENDESIGNAID)
可用来交互式设计、创建和维护应用屏幕,包括显示文件和菜单,且可以将用户设计的屏幕规范地自动转换成DDS源代码,简化了菜单和显示文件的创建。
STRSDA:
可以进入屏幕和菜单的编辑画面,对原有屏幕编辑也可通过在WORKWITHMEMBERSUSINGPDM(WRKMBRPDM)屏幕上使用选项17(CHANGEUSINGSDA)功能来实现,
4.RLU(REPORTLAYOUTUTILITY)
可用来交互式定义打印报表的格式分布,建立打印文件,且可以将用户设计的报表格式分布规范地自动转换成DDS源代码,简化了报表的设计和修改,使用它可以在屏幕上直观地设计打印报表。
STRRLU:
可以进入报表编辑画面,对原有屏幕编辑也可通过在WORKWITHMEMBERSUSINGPDM(WRKMBRPDM)屏幕上使用选项19(CHANGEUSINGRLU)功能来实现
5.DFU(DATAFILEUTILITY)
能够快速定义、创建面向数据录入、查询或文件维护的DFU程序,而不需要编程。
对开发应用建立测试数据库尤其有用。
STRDFU:
显示DFU菜单
DLTDFUPGM:
删除DFU程序和文件
CHGDTA:
运行DFU程序
DSPDTA:
运行DFU程序,但不能修改文件中的数据记录
UPDDTA:
使用临时的DFU程序更新文件,可通过在WORKWITHMEMBERSUSINGPDM(WRKMBRPDM)屏幕上使用选项18(CHANGEUSINGDFU)来实现,它可以进行查询、增加、修改、删除记录的操作。
该功能最常用。
QUERY/400
QUERY/400特许程序是一个非常有用和容易使用的决策支持工具,可用来获取外部描述数据库文件信息。
它允许使用单个文件或联结最多32个不同文件的数据,产生的报表可以打印、屏幕显示或存放在新的数据库文件中,功能强大。
STRQRY或GOQUERY命令,可以进入QUERY菜单,主要功能都有相应选项和帮助进行逐步引导完成。
CL(控制语言)编程
AS/400的所有系统功能都可以通过控制语言(CONTROLLANGUAGE,简称CL)调用,单个控制语言就是一条CL命令和它的参数。
可以在命令行直接执行或输入到源文件成员中(CL程序或CLLE程序)经编译生成目标运行。
注意,有些CL命令只能在程序中实现其功能(如,MONMSG等)。
系统为所有CL命令提供提示和帮助,并且多数参数有缺省值。
其实,一个CL程序就是一组CL命令,其目标可以交互式或批处理环境下运行。
通过CL程序可以简化操作,控制工作流程,设置作业运行环境等。
在应用中,CL程序一般作为
主控程序来控制应用程序的执行顺序和为应用程序完成一些首尾的任务(如文件覆盖、定位目标等),它可以管理程序执行中出现的以外(可根据需要是饶过还是进行修正)。
此外,CL程序还能实现算术/逻辑操作,可以与用户或其他程序通讯,可以访问单个记录格式的数据库文件或显示文件。
CL程序也有缺点,不能增加或修改数据库文件中的记录,不能使用打印文件或ICF文件等。
1.2DDS及文件操作说明
利用DDS可以描述物理文件、逻辑文件、显示文件、打印文件和ICF文件,重点介绍描述物理文件和逻辑文件
AS/400数据库结构
三级存储结构
库(LIBRARY)——数据库文件(FILE)——成员(MEMBER)
一级目录——二级目录——三级目录
1.字段及字段定义
字段是用来描述某一属性的一组值;字段定义是对字段属性的说明
2.记录及记录格式
记录是把一组字段放在一起命名,用来说明某一事物;记录格式是对记录中所有字段的简单说明以及对各字段排序的说明
3.数据库文件及文件说明
文件是已命名的一组记录,文件说明是对文件所有的记录格式和存取路径的说明,数据库文件分为数据文件和源文件,数据文件就是程序中使用的物理文件和逻辑文件。
A.物理文件(*FILE,PF-DTA):
在SQL中称做表(TABLE),含有系统实际存储的数据,每个物理文件只有一个固定长度的记录格式。
物理文件可以指定键值来规定其顺序存取路径,而不按记录写入时的物理顺序操作。
B.逻辑文件(*FILE,LF):
在SQL中称做表(VIEW),它不含有实际数据,依附于物理文件,可以描述一个或多个物理文件的记录(JOIN逻辑文件)。
逻辑文件功能有:
改变物理文件中定义的字段属性(如字段名和字段排列顺序)
提供记录的逻辑顺序
可以只选择物理文件中部分字段进行显示或修改
对字段值进行选择记录进行操作
从物理文件的字段基础上演绎新字段
联合多个物理文件
C.源文件(*FILE,PF-SRC):
是系统用来建立源程序(RPGLE、CLLE、C)或源物理文件(PF)等目标的源说明
4.成员
分为数据文件成员和源文件成员。
A.数据文件成员,数据文件中的记录可以按某一规则分为多组,每个成员可以存储其中的一组记录,成员就是数据文件的子集,如一家省级银行将各地区分行的存款记录按多个成员存储。
一个文件至少有一个成员,建立数据文件时,系统自动产生一个初始成员(名字和数据文件一样),高级版本OS对文件成员个数不加限制(*NOMAX)。
B.源文件成员,就是源程序、源物理文件、源逻辑文件等集合,可以将大型应用系统的一个模块的相关源文件成员存放在一个源文件里。
建立物理文件
1.建立一个库SGMSRC、两个源文件RPGMSCF和RDTASCF,主要用于存放应用系统的源,再建一个库SGMOBJ,用于存放目标
系统集成标准:
1.库:
系统名+库属性,假如有学生成绩管理系统名为SGM,存放该应用系统的源程序库就命名为SGMSRC,存放该应用系统目标的库可命名为SGMOBJ。
2.源文件名:
一般情况可按模块名(定义为2位)来区分,而我们要举的例子比较小,直接按存放成员的类型来区分,比如,存放程序的源文件叫R+PGM+SCF,存放物理文件和逻辑文件定义的源文件叫R+DTA+SCF
3.物理文件/逻辑文件名:
物理文件一般是按该物理文件的用途来命名的,比如:
学生成绩表命名为STGD+A,‘A’含义是主文件(或数据文件),逻辑文件是依附于物理文件,一般通过将A改为L,再加序号以区分哪个逻辑文件,逻辑文件不宜太多,否则,会影响数据操作效率,如针对学生成绩表,其中一个逻辑名为STGDL1
4.程序名:
一般情况下,是模块名(两位)+交易码(4位)+程序类型标识(一位,‘R’:
RPGLE,‘C’:
C,C或CL,‘R’:
报表等)组成,比如一个应用系统的一个模块的所有程序存放在源文件RCDSCF下,其中一个交易程序名字可命名为CD0400R,‘CD’为模块名,‘0400’为交易码,‘R’代表RPGLE程序
CRTLIBLIB(SGMSRC)TYPE(*PROD)
CRTSRCPFFILE(SGMSRC/RPGMSCF)IGCDTA(*YES)TEXT(‘PROGRAMSRCFFORSTUDENT’)
CRTSRCPFFILE(SGMSRC/RDTASCF)IGCDTA(*YES)TEXT(‘DATABASESRCFFORSTUDENT’)
CRTLIBLIB(SGMOBJ)TYPE(*PROD)
2.通过SEU开发工具进行交互式定义源物理文件
DDS使用一种位置相关的格式。
在一个DDS行中对物理文件有效的位置是:
6:
FORM的类型(A=DDS)
17:
NAME的类型(R=RECORDNAME,K=KEYFIELDNAME,BLANK=FIELDNAME)
19-28:
NAME(类型由17列决定的名称,如记录名、字段名、键字段名)
29:
参照定义(R表示只有当17列为空,19-28非空时有效,表示当前字段是一个参照字段,BLANK=当前字段非参照字段)
30-34:
字段长度
35:
数据类型
36-37:
小数点位置定义(0-31有效),当19-28列定义为非数字型字段时,本拦应为空
45-80:
功能定义,用于定义各种关键字
关键字的使用大大丰富了DDS的文件定义。
分为
文件级,位于记录名之前,主要包括
REF:
指定被参考文件
UNIQUE:
键值唯一
FIFO,FCFO,LIFO:
相同键值记录的排列规则,有UNIQUE时,就不能用
记录级,位于记录名和第一个字段名之间,主要有
FORMAT:
共享其他文件的记录格式
TEXT:
记录格式说明
字段级,关键字位于一个字段名和其下一个字段名或第一个关键字段名之间,包括
COLHDG:
为数据库文件中字段显示和打印用
REFFLD:
参考一个已定义的字段,允许字段长度和参考的字段不同,可用+N或-N来改变字段长度
关键字段级,关键字位于第一关键字段名和其下一个关键字段名或成员尾之间,主要包括
DESCEND:
按降序排列,可用于字符或数值型键字字段
ABSVAL:
按绝对值顺序排序
3.建立物理文件
定义好源物理文件后,可以建立物理文件,来对数据进行承载。
CRTPFSGMOBJ/DBREFSGMSRC/RDTASCFDBREF
CRTPFSGMOBJ/STGDASGMSRC/RDTASCFSTGDA
如果建立物理文件时,要求有多成员,则要修改MAXMBRS参数值,可以指定为无限定(*NOMAX)
若要增加新成员,可以通过命令ADDPFM命令完成,也可通过GOCMDMBR命令,再选4来完成。
4.数据输入
通过交互式SQL的INSERT命令
用工具DFU的UPDDTA功能
通过程序输入
通过CPYF命令从其它数据文件中拷贝数据
5.字段参考文件
相当于数据字典,一般字段参考文件是没有成员和关键字定义的。
建立逻辑文件
1.逻辑文件的结构可以很简单,也可很复杂。
主要有四类:
A.简单逻辑文件,把单个物理文件或表映射到逻辑记录定义
B.多重格式逻辑文件,允许对几个物理文件存取,每个物理文件都有自己的记录格式定义。
这种逻辑文件只能通过DDS创建,不能用SQL创建。
C.联接逻辑文件,从多个物理文件或表、逻辑文件或视图中组合字段,给出单个记录定义
D.SQL视图类似于联接逻辑文件,和联接逻辑文件的区别主要是实现方法不一样,联接文件对每次联接进行维护或共享存取路径,而SQL视图在运行时通过查询定义模板找到需要的存取路径
2.简单逻辑文件定义
简单逻辑文件定义和物理文件定义类似,只是逻辑文件在DDS的关键字中增加一些与关系操作有关的内容:
记录级
PFILE:
定义包含逻辑文件处理数据的物理文件
字段级
RENAME:
更改一个字段的名称(其他属性不变)
CONCAT:
可以将物理文件的多个字段合并成逻辑文件的一个字段,例通过CONCAT(STRYRSTRMOSTRDA)可以将三个字段合并成一个新的字段SEQDAT。
SELECT(选择)/OMIT(跳过)级关键字
当DDS表格中的第17列为S或O时,就说明该行第19-28位置是SELECT/OMIT字段名,该行的关键字就是SELECT/OMIT级关键字,该关键字具备筛选记录功能
ALL:
选择或排除不满足以上任何S/O条件的记录
COMP:
字段与字段或某值比较
VALUE:
字段是否存在于一值列表中
RANGE:
字段是否在一个指定范围内
3.建立逻辑文件,可通过CRTLF命令来建立逻辑文件(编译)
CRTLFSGMOBJ/STGDL1SGMSRC/RDTASCFSTGDL1
1.3RPG语言
OPM(原始程序模型)RPG语言是一种定格式、面向过程、结构化开发语言,它的优点主要体现在可以很方便的对数据库文件进行操作,而且效率非常的高,它是AS/400上一种最主要的开发语言之一。
ILE(集成语言环境)RPG/400,集成化语言环境下的RPG具有更强功能、编程变得更简便,ILE一组新的工具和相关的系统支持,是为在AS/400系统上增强程序开发而设计的,只能由通过新ILE系列的编译器产生的程序开发这种新模型的能力,该系列包括ILERPG/400、ILECOBOL/400、ILEC/400、ILECL。
把OPMRPG转换成ILERPG可以通过命令CVTRPGSRC来实现。
结构化程序语言
RPG程序可以用工具SEU来编辑,它的格式固定,大致可以分为
条件指示器操作数1操作码操作数2结果结果指示器
RPG里的三种程序结构
1.顺序操作:
流水作业,没有程序语句转移
2.条件转移操作
A.IFELSEENDIF结构
OPMRPG
ILERPG
AIFXXB
AANDXXC
。
。
。
ELSE
。
。
。
ENDIF
IFAXBANDAXC
。
。
。
ELSE
。
。
。
ENDIF
XX:
EQ、HT、NE等
‘X’:
=、>、<、<>等
B.SELECTWHENOTHERENDSL结构
OPMRPG
ILERPG
SELEC
AWHXXB(
。
。
。
OTHER
。
。
。
ENDSL
SELECT
WHENAXB
。
。
。
OTHER
。
。
。
ENDSL
XX:
EQ、GT、LT、NE等
‘X’:
=、>、<、<>等
其他还有CASXX、GOTO、EXSR(执行子程序)转移操作
3.重复执行某一操作/循环
A.DOENDDO
OPMRPG
ILERPG
DO10Y20
。
。
。
ENDDO
DO*HIVAL
IFY>10
LEAVE
ENDIF
。
。
。
EVALY=Y+1
ENDDO
B.DOWENDDO
OPMRPG
ILERPG
YDOWLE10
。
。
。
1ADDYY
ENDDO
DOWY<=10
。
。
。
EVALY=Y+1
ENDDO
其他还有DOUXX/DOU重复执行操作
操作码
1.算术运算
ADD:
RESULT=FACTOR1/RESULT+FACTOR2
SUB:
RESULT=FACTOR1/RESULT+FACTOR2
Z-ADD:
RESULT=0+FACTOR2
Z-SUB:
RESULT=0-FACTOR2
MULT:
RESULT=FACTOR1/RESULT*FACTOR2
DIV:
RESULT=FACTOR1/RESULT/FACTOR2
MVR:
RESULT=上一个DIV操作的余数
SQRT:
RESULT=FACTOR2的平方根
XFOOT:
RESULT=FACTOR2数组的和
2.赋值操作
MOVE:
RESULT=FACTOR2(右靠齐,字符型变量和P形变量可以互相赋值)
如果FACTOR2的长度小于RESULT的长度,则RESULT的其余部分保持不便;
如果FACTOR2的长度大于RESULT的长度,则FACTOR2种的多余部分将被忽略;
MOVEL:
RESULT=FACTOR2(左靠齐,字符型变量和P形变量可以互相赋值)
如果FACTOR2的长度小于RESULT的长度,则RESULT的其余部分保持不便;
如果FACTOR2的长度大于RESULT的长度,则FACTOR2种的多余部分将被忽略;
MOVEA:
RESULT=FACTOR2(RESULT必须是个使用DIM定义的数组,FACTOR2可以是数组,变量,常量,*BLANKS,*ZEROS,*ALL'XXX'。
详细图解清参考RPGFORAS/400REFERENCE)
3.比较操作:
COMP:
FACTOR1与FACTOR2比较的结果由指示器表示
VAR1COMPVAR299
*IN99IFEQ’1’
。
。
。
ENDIF
CABXX:
FACTOR1与FACTOR2比较,如果结果为真的话就转移到RESULT指示的TAG
VAR1CABXXVAR2TAG1
VAR1CABXXVAR3TAG2
……..
TAG1TAG
……..
TAG2TAG
…….
CASXX:
FACTOR1与FACTOR2比较,如果结果为真的话就执行RESULT指示的子程序
VAR1CASXXVAR2/CONSTSUBROUTINE1
VAR3CASXXVAR4/CONSTSUBROUTINE2
VAR5CASXXVAR6/CONSTS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AS400开发入门By adan AS400 开发 入门 By