AS/400开发介绍
1.1 AS/400应用开发概述.................................................................... 错误!未定义书签。 1.1.1 数据描述规范(DDS data description specification) ........... 错误!未定义书签。 1.1.2 DB2 QUERY MANAGER AND SQL DEVELOPMENT KIT支持的结构化查询语言SQL/400 ............................................................................................. 错误!未定义书签。 1.1.3 APPLICATION DEVELOPMENT TOOLSET/400(ADTS/400)开发工具包中有PDM、SEU、SDA、RLU、DFU等 ..................................................... 错误!未定义书签。 1.PDM(ROGRAMMING DEVELOPMENT MANAGER) ...... 错误!未定义书签。 2.SEU(SOURCE ENTRY UTILITY) ......................................... 错误!未定义书签。 3.SDA(SCREEN DESIGN AID) ................................................ 错误!未定义书签。 4.RLU(REPORT LAYOUT UTILITY) ...................................... 错误!未定义书签。 5.DFU(DATA FILE UTILITY) .................................................. 错误!未定义书签。 1.1.4 QUERY/400 ............................................................................. 错误!未定义书签。 1.1.5 CL(控制语言)编程 ............................................................ 错误!未定义书签。 1.2 DDS及文件操作说明 .................................................................... 错误!未定义书签。 1.2.1 AS/400数据库结构 ................................................................ 错误!未定义书签。 1.字段及字段定义 ........................................................................... 错误!未定义书签。 2.记录及记录格式 ........................................................................... 错误!未定义书签。 3.数据库文件及文件说明 ............................................................... 错误!未定义书签。 4.成员 ............................................................................................... 错误!未定义书签。 1.2.2 建立物理文件 ......................................................................... 错误!未定义书签。 1.建立一个库TEST一个源文件TESTSRCF ............................... 错误!未定义书签。 2.通过SEU开发工具进行交互式定义源物理文件 ..................... 错误!未定义书签。 3.建立物理文件 ............................................................................... 错误!未定义书签。 4.数据输入 ....................................................................................... 错误!未定义书签。 5.字段参考文件 ............................................................................... 错误!未定义书签。 1.2.3 建立逻辑文件 ......................................................................... 错误!未定义书签。 1.逻辑文件的结构可以很简单,也可很复杂。主要有四类: ... 错误!未定义书签。 2.简单逻辑文件定义 ....................................................................... 错误!未定义书签。 3.建立逻辑文件,可通过CRTLF命令来建立逻辑文件(编译)错误!未定义书签。 1.3 RPG 语言 ...................................................................................... 错误!未定义书签。 1.3.1 结构化程序语言 ..................................................................... 错误!未定义书签。 1.3.2 操作码 ..................................................................................... 错误!未定义书签。 1.算术运算 ....................................................................................... 错误!未定义书签。
61676237.doc – 第 1 页 共 39 页
2.赋值操作 ....................................................................................... 错误!未定义书签。 3. 比较操作: .................................................................................... 错误!未定义书签。 4.程序操作: ................................................................................... 错误!未定义书签。 5. 调用和转移操作: ..................................................................... 错误!未定义书签。 6. 文件操作: ................................................................................. 错误!未定义书签。 7.信息操作: ................................................................................... 错误!未定义书签。 8.说明操作: ................................................................................... 错误!未定义书签。 9.数据区操作 ................................................................................... 错误!未定义书签。 10.其它操作: ................................................................................. 错误!未定义书签。 1.3.3 ILE RPG对RPG/400的扩充 ................................................ 错误!未定义书签。 1.ILE RPG基本概念 .................................................................... 错误!未定义书签。 过程(PROCEDURE) ................................................................. 错误!未定义书签。 模块对象(MODULE) ................................................................ 错误!未定义书签。 ILE程序 ......................................................................................... 错误!未定义书签。 服务程序 ......................................................................................... 错误!未定义书签。 联编目录 ......................................................................................... 错误!未定义书签。 对程序和过程的调用 ..................................................................... 错误!未定义书签。 活动组(Activation Group) ......................................................... 错误!未定义书签。 2.表达式的使用及可使用表达式的操作码 ................................... 错误!未定义书签。 表达式中的有效操作符 ................................................................. 错误!未定义书签。 表达式中结果字段的数据类型 ..................................................... 错误!未定义书签。 表达式中的数据精确度 ................................................................. 错误!未定义书签。 可用表达式的操作码 ..................................................................... 错误!未定义书签。 3.内嵌式函数及新增、改变的操作 ............................................... 错误!未定义书签。 内嵌式函数 ..................................................................................... 错误!未定义书签。 新增操作码 ..................................................................................... 错误!未定义书签。 新增位操作 ..................................................................................... 错误!未定义书签。 新增日期、时间操作 ..................................................................... 错误!未定义书签。 改变了一些操作码的写法 ............................................................. 错误!未定义书签。 附:RPG III 与 RPG IV 的实体名称长度区别 ......................... 错误!未定义书签。 4.可视化调试(源级调试) ........................................................... 错误!未定义书签。 开始调试程序: ............................................................................. 错误!未定义书签。 结束调试: ..................................................................................... 错误!未定义书签。 调试命令: ..................................................................................... 错误!未定义书签。 1.4 举例 ................................................................................................. 错误!未定义书签。 1.4.1 学生成绩管理 ......................................................................... 错误!未定义书签。 1.建库、源文件、物理文件成员、 逻辑文件成员并编译成员 . 错误!未定义书签。 2.分别用DFU、SQL、和通过RPGLE程序对学生学籍进行增加、修改、查询、删除记录操作 ......................................................................................... 错误!未定义书签。 3.编写程序实现某年段学生成绩的基本管理 ............................... 错误!未定义书签。
61676237.doc – 第 2 页 共 39 页
1.1 AS/400应用开发概述
数据描述规范(DDS data description specification)
AS/400的操作系统OS/400提供一种描述数据属性的方法DDS,它可以在程序外部方便、有效地对数据属性进行描述。
AS/400有两种定义数据的方法:
(1)程序描述文件:文件在记录的描述仅包含一个记录名和记录长度,任何程序使用这种方式描述的文件必须为记录中的每个字段提供字段级属性(字段名、数据类型、字段长度等)定义,此中类型文件不常用
(2)外部描述文件:文件包含记录的详细字段描述和有关文件如何被访问的信息,在程序中只要指明该文件为外部描述文件即可,当程序目标建立时,编译器自动从文件中抽取信息到程序中,且转换为高级语言适合的语法,它的显著特点之一是克服了程序描述文件的缺点,通过文件的记录字段仅一次的说明,可定义多种访问路径,多个程序使用。
DB2 QUERY MANAGER AND SQL DEVELOPMENT KIT支持的结构化查询语言SQL/400
SQL/400是SQL的DB2/400实现,可以交互式地输入大部分SQL语句或把它们嵌入到高级语言(RPGLE、COBOL、CLE等)程序中,替代高级语言内置的读、写和修改等指令。SQL/400主要由以下部分组成:
(1)SQL运行支持程序,提供对SQL 语句的分析及对运行任何SQL语句的支持功能,是OS/400的一个部分,它允许含有SQL语句的应用程序在没有安装DB2 QUERY MANAGER AND SQL DEVELOPMENT KIT特许程序的系统上运行。
(2)SQL预编译程序,处理嵌入SQL语句的应用程序 (3)SQL交互式接口,支持用交互式建立和运行SQL语句 (4)DB2 QUERY MANAGER FOR AS/400,提供菜单、填空式提示的交互式接口,允许建立、增加、维护数据,和运行报表
61676237.doc – 第 3 页 共 39 页
APPLICATION DEVELOPMENT
TOOLSET/400(ADTS/400)开发工具包中有PDM、SEU、SDA、RLU、DFU等
1.PDM(PROGRAMMING DEVELOPMENT MANAGER)
可以用来处理源代码、对象和库。为程序员建立源文件成员、访问SEU和许多其他有用的工具提供方便。
STRPDM:直接到PDM菜单
WRKLIBPDM:可以指定操作哪一个库或对当前库列表进行操作
WRKOBJPDM:指定操作某一库下的所有对象(可按名称、类型选取) WRKMBRPDM:指定操作某一库下某一源文件下的所有或部分成员
2.SEU(SOURCE ENTRY UTILITY)
是一个全屏幕编辑工具,可以建立和编辑源文件成员,当启动时,能够输入新的源语句,修改、删除、复制、移动已存在的源语句,具有语言相关提示和语法检查功能,且具有分屏编辑/浏览功能。
STRSEU:可以对原有成员进行编辑或建立新成员,对原有成员进行编辑也可通过在WORK WITH MEMBERS USING PDM(WRKMBRPDM)屏幕上使用选项2(EDIT)功能来实现,当然,建立新成员也可以通过在WORK WITH MEMBERS USING PDM(WRKMBRPDM)屏幕上使用F6(CREATE)功能键来实现。
3.SDA(SCREEN DESIGN AID)
可用来交互式设计、创建和维护应用屏幕,包括显示文件和菜单,且可以将用户设计的屏幕规范地自动转换成DDS源代码,简化了菜单和显示文件的创建。
STRSDA:可以进入屏幕和菜单的编辑画面,对原有屏幕编辑也可通过在WORK WITH MEMBERS USING PDM(WRKMBRPDM)屏幕上使用选项17(CHANGE USING SDA)功能来实现,
4.RLU(REPORT LAYOUT UTILITY)
可用来交互式定义打印报表的格式分布,建立打印文件,且可以将用户设计的报表格式分布规范地自动转换成DDS源代码,简化了报表的设计和修改,使用它可以在屏幕上直观地设计打印报表。
STRRLU:可以进入报表编辑画面,对原有屏幕编辑也可通过在WORK WITH MEMBERS USING PDM(WRKMBRPDM)屏幕上使用选项19(CHANGE USING RLU)
61676237.doc – 第 4 页 共 39 页
功能来实现
5.DFU(DATA FILE UTILITY)
能够快速定义、创建面向数据录入、查询或文件维护的DFU程序,而不需要编程。对开发应用建立测试数据库尤其有用。
STRDFU:显示DFU菜单
DLTDFUPGM:删除DFU程序和文件 CHGDTA:运行DFU程序
DSPDTA:运行DFU程序,但不能修改文件中的数据记录
UPDDTA:使用临时的DFU程序更新文件,可通过在WORK WITH MEMBERS USING PDM(WRKMBRPDM)屏幕上使用选项18(CHANGE USING DFU)来实现,它可以进行查询、增加、修改、删除记录的操作。该功能最常用。
QUERY/400
QUERY/400特许程序是一个非常有用和容易使用的决策支持工具,可用来获取外部描述数据库文件信息。它允许使用单个文件或联结最多32个不同文件的数据,产生的报表可以打印、屏幕显示或存放在新的数据库文件中,功能强大。 STRQRY或GO QUERY命令,可以进入QUERY菜单,主要功能都有相应选项和帮助进行逐步引导完成。
CL(控制语言)编程
AS/400的所有系统功能都可以通过控制语言(CONTROL LANGUAGE,简称CL)调用,单个控制语言就是一条CL命令和它的参数。可以在命令行直接执行或输入到源文件成员中(CL程序或CLLE程序)经编译生成目标运行。注意,有些CL命令只能在程序中实现其功能(如,MONMSG等)。系统为所有CL命令提供提示和帮助,并且多数参数有缺省值。 其实,一个CL程序就是一组CL命令,其目标可以交互式或批处理环境下运行。
通过CL程序可以简化操作,控制工作流程,设置作业运行环境等。在应用中,CL程序一般作为
主控程序来控制应用程序的执行顺序和为应用程序完成一些首尾的任务(如文件覆盖、定位目标等),它可以管理程序执行中出现的以外(可根据需要是饶过还是进行修正)。此外,CL程序还能实现算术/逻辑操作,可以与用户或其他程序通讯,可以访问单个记录格式的数据库文件或显示文件。CL程序也有缺点,不能增加或修改数据库文件中的记录,不能使用打印文件或ICF文件等。
1.2 DDS及文件操作说明
利用DDS可以描述物理文件、逻辑文件、显示文件、打印文件和ICF文件,重点介绍
61676237.doc – 第 5 页 共 39 页