AS400_RPG入门
AS400培训-RPG
AS/400培训资料于勇IPACS北京在RPGLE中的文件定义_________________________________________________ 3 在RPGLE中有关文件操作的操作码_______________________________________ 5 只输出子文件定义_______________________________________________________ 8 实现输出类型子文件_____________________________________________________ 9 输出类型子文件有定位处理______________________________________________ 12 实现有定位处理输出类型子文件__________________________________________ 13 处理类型子文件有定位处理______________________________________________ 17 实现处理类型子文件有定位处理__________________________________________ 20 处理类型子文件有定位处理和光标处理____________________________________ 26 实现有定位处理、光标处理子文件________________________________________ 29 处理类型子文件有定位、光标、信息子文件处理____________________________ 35 实现有定位、光标、信息子文件的处理类型子文件__________________________ 38 处理类型单页子文件定义________________________________________________ 45 实现处理类型单页子文件________________________________________________ 49 打印文件定义__________________________________________________________ 59 实现打印文件__________________________________________________________ 61在RPGLE中的文件定义**************************************************************** * Copyright 北京宇博电子科技有限公司 1998 * **************************************************************** * * * Program Id - FileDfn * * Program Type - RPGLE * * Purpose - 用于讲解在RPGLE中的文件定义 * * 不可编译 * * Date Generated - 1998-07-22 * * Author - 于勇 * * * *****************************************************************ilename++IPEASFRlen+LKlen+AIDevice+.Keywords+++++++++++++++++++ *..1....+....2....+....3....+....4....+....5....+....6....+. (7)* -------------------------------------------------------------- * 顺序和直接存取只用于输入操作 ( Read , Chain )* -------------------------------------------------------------- FCustomer IF E K DISK* -------------------------------------------------------------- * 仅使用Write来增加记录* -------------------------------------------------------------- FCustomer O E K DISK* -------------------------------------------------------------- * 顺序和直接存取用于输入( Read , Chain ) , Update , Delete* 不包含Write操作* -------------------------------------------------------------- FCustomer UF E K DISK* -------------------------------------------------------------- * 顺序和直接存取用于输入( Read , Chain ) , Update , Delete* 包含Write操作* -------------------------------------------------------------- FCustomer UF A E K DISK* -------------------------------------------------------------- * 显示文件定义说明* -------------------------------------------------------------- FCustomerD CF E Workstn* -------------------------------------------------------------- * 打印文件定义说明* -------------------------------------------------------------- FCustomerP O E Printer在RPGLE中有关文件操作的操作码***************************************************************** Copyright 北京宇博电子科技有限公司 1998 ****************************************************************** ** Program Id - FileOpr ** Program Type - RPGLE ** Purpose - 用于讲解在RPGLE中的文件操作码 ** 不可编译 ** Date Generated - 1998-07-22 ** Author - 于勇 ** ******************************************************************物理文件定义FCustomer UF A E K Disk*显示文件定义FCustomerd CF E Workstn*参照外部文件的数据结构定义D Customer_DsE Ds Extname( Customer )D Dspf_DsE Ds Extname( Customer )D Prefix(XS:2)*关键字列表定义C Csklist KlistC Kfld Csid*读下一条记录*IN90 = *OFF表示读到记录C Read Customerr 99*读上一条记录*IN90 = *OFF表示读到记录C ReadP Customerr 99*最小值定位C *Loval SetLl Customerr*最大值定位C *Hival SetGT Customerr*定位指示符含义C Csklist Setll Customerr 979899* *In97 No Record Found* *In98 Error Occurred* *in99 Exact Match for Search Argument Found*读下一条等于关键字的记录C Csklist Reade Customerr 99*读上一条等于关键字的记录C Readpe Customerr 99*用指定关键字读一条记录并且不锁定读到记录*IN88 = *OFF读到C Csklist Chain(N) Customerr 97*修改记录C Update Customerr*删除记录C Delete Customerr*增加记录C Write CUSTOMERR*记录解锁C UNLOCK CUSTOMERR*条件语句C If Not *In97*赋值语句C EVAL FLD2=FLD1C MOVE FLD1 FLD2C ELSEC MOVE FLD2 FLD1C EndIf*条件选择语句C SELECTC WHEN FLD1=FLD2C OTHERC ENDSL*循环语句C Dow Not *In97C EndDoC Dow Not *In03*显示屏幕并从屏幕中读取内容C ExFmt Dsp01C EndDo*程序结束C Move *ON *InLr只输出子文件定义A*%%TS SD 19980811 141319 YUYONG REL-V3R7M0 5716-PW1 A*%%EC A DSPSIZ(24 80 *DS3) A R SFL01 SFL A*%%TS SD 19980807 103111 YUYONG REL-V3R7M0 5716-PW1 A CSID R O 9 10REFFLD(CUSTOMERR/CSID *LIBL/CUSTOM- A ER) A CSNAME R O 9 23REFFLD(CUSTOMERR/CSNAME *LIBL/CUST- A OMER) A R CTL01 SFLCTL(SFL01) A*%%TS SD 19980811 141319 YUYONG REL-V3R7M0 5716-PW1 A SFLSIZ(0100) A SFLPAG(0010) A CA03(03) A OVERLAY A 30 SFLDSP A 31 SFLDSPCTL A 33 SFLCLR A 34 SFLEND(*MORE) A 1 3'CS0101D' A 1 31'查询用子文件' A DSPATR(HI) A 1 72DATE A EDTCDE(Y) A 2 72TIME A 8 9'客户号' A DSPATR(HI) A 8 31'客户名称' A DSPATR(HI) A R FUN01 A*%%TS SD 19980811 141319 YUYONG REL-V3R7M0 5716-PW1 A 22 3'F3 =退出' A COLOR(BLU)实现输出类型子文件**************************************************************** * Copyright 北京宇博电子科技有限公司 1998 * **************************************************************** * * * Program ID - CS0101R * * Program Type - RPGLE * * Purpose - 建立一个输出类型的子文件 * * Date Generated - 1998-08-06 * * Author - 于勇 * * * **************************************************************** *数据文件定义FCustomer IF E K Disk *显示文件定义FCs0101D CF E WorkStn Sfile( Sfl01 : RecNbr )*子文件用相对记录号定义D RecNbr S 4 0 Inz( *Zero ) *子文件最大记录数D RecLmt S 4 0 Inz( 9999 )*============================* * 主程序 * *============================* *子文件清除C ExSr SflClrSr *子文件记录装入C ExSr SflLodSrC Dow Not *In03 F3*子文件显示C Exsr SflDspSr C EndDo C Move *On *InLr*----------------------------* * 子文件初始化 * *----------------------------*C SflClrSr BegSrC Eval *In30 = *Off SflDspC Eval *In31 = *Off SflCtlDspC Eval *In33 = *On SflClr*写字文件控制记录C Write Ctl01 C Eval *In33 = *Off C Eval *In34 = *Off SflEnd*恢复子文件初值C Reset RecNbr C EndSr*----------------------------* * 子文件数据装入 * *----------------------------* C SflLodSr BegSrC *Loval SetLL CustomerR C Read CustomerR 99 C Dow Not *In99 And C RecNbr <= RecLmt *生成子文件相对记录号C Eval RecNbr = RecNbr + 1 *写子文件记录C Write Sfl01 C Read CustomerR 99 C EndDo *子文件不为空C If RecNbr > *Zero C Move *On *In30 SflDspC Endif *读文件结束C If *In99 C Move *On *In34 SflEndC Endif C EndSr*----------------------------* * 子文件显示 * *----------------------------* C SfldspSr BegSrC Eval *In31 = *On SflCtlDspC Write Fun01 C Exfmt Ctl01 C Eval *In31 = *Off SflCtlDspC EndSr输出类型子文件有定位处理A*%%TS SD 19980811 135301 YUYONG REL-V3R7M0 5716-PW1 A*%%EC A DSPSIZ(24 80 *DS3) A R SFL01 SFL A*%%TS SD 19980807 103529 YUYONG REL-V3R7M0 5716-PW1 A CSID R O 9 10REFFLD(CUSTOMERR/CSID *LIBL/CUSTOM- A ER) A CSNAME R O 9 23REFFLD(CUSTOMERR/CSNAME *LIBL/CUST- A OMER) A R CTL01 SFLCTL(SFL01) A*%%TS SD 19980811 135301 YUYONG REL-V3R7M0 5716-PW1 A SFLSIZ(0100) A SFLPAG(0010) A CA03(03) A OVERLAY A 30 SFLDSP A 31 SFLDSPCTL A 33 SFLCLR A 34 SFLEND(*MORE) A RECRRN 4S 0H SFLRCDNBR A 1 3'CS0102D' A 1 31'有定位子文件' A 1 72DATE A EDTCDE(Y) A 2 72TIME A 4 60'客户号定位:' A POSCSID 5A I 4 75 A 8 9'客户号' A 8 32'客户名称' A R FUN01 A*%%TS SD 19980805 161157 YUYONG REL-V3R7M0 5716-PW1 A 22 3'F3 =退出'实现有定位处理输出类型子文件**************************************************************** * Copyright 北京宇博电子科技有限公司 1998 * **************************************************************** * * * Program ID - CS0102R * * Program Type - RPGLE * * Purpose - 建立一个输出类型的子文件 * * 有定位 * * Date Generated - 1998-08-06 * * Author - 于勇 * * * **************************************************************** *数据文件定义FCustomer UF E K Disk *显示文件定义FCs0102D CF E WorkStn Sfile( Sfl01 : RecNbr )D CsKeyAry S 5 Dim( 9999 ) D Ascend *数组下标定义D X S 4 0 Inz( 1 )D CsKeyDs DS D Csid 5D PosDs DS D PosCsid 5 Inz( *Blank )*子文件用相对记录号定义D RecNbr S 4 0 Inz( *Zero ) D LstRecNbr S 4 0 Inz( *Zero )*子文件最大记录数D RecLmt S 4 0 Inz( 9999 )*============================* * 主程序 * *============================**子文件清除*子文件记录装入C ExSr SflLodSrC Dow Not *In03 *子文件定位C Exsr SflPosSr*子文件显示C Exsr SflDspSr C EndDoC Move *On *InLr *----------------------------* * 子文件初始化 * *----------------------------* C SflClrSr BegSrC Eval *In30 = *Off SflDspC Eval *In31 = *Off SflCtlDspC Eval *In33 = *On SflClr*写字文件控制记录C Write Ctl01 C Eval *In33 = *Off SflClr*恢复子文件初值C Reset RecNbrC EndSr *----------------------------- * 子文件数据装入 * *----------------------------- C SflLodSr BegSrC *Loval SetLL CustomerR C Read CustomerR 99 C Dow Not *In99 And C RecNbr <= RecLmt *生成子文件相对记录号C Eval RecNbr = RecNbr + 1 *将关键字赋值给数组C Eval CsKeyAry( RecNbr ) = CsKeyDs *写子文件记录C Write Sfl01C EndDo*子文件不为空C If RecNbr > *Zero C Eval LstRecNbr = RecNbr C Move *On *In30 C Endif*读文件结束C If *In99 C Move *On *In34 C EndifC EndSr *----------------------------* * 子文件定位 * *----------------------------* C SflPosSr BegSrC If PosDs <> *BlankC ReSet X C PosDS LookUP CsKeyAry( X ) 97 99 C If *In97 Or *in99 C Eval RecRrn = X C Else C Eval RecRrn = LstRecNbr C EndIfC Else C Eval RecRrn = 1 C EndIfC EndSr *----------------------------* * 子文件显示 * *----------------------------* C SfldspSr BegSrC Eval *In31 = *On C Write Fun01 C Exfmt Ctl01 C Eval *In31 = *OffC EndSr处理类型子文件有定位处理A*%%TS SD 19980811 141059 YUYONG REL-V3R7M0 5716-PW1 A*%%EC A DSPSIZ(24 80 *DS3) A R SFL01 SFL A*%%TS SD 19980811 135222 YUYONG REL-V3R7M0 5716-PW1 A SCADDRESS 30A H A OPT 1Y 0B 9 5EDTCDE(2) A SCCSID R O 9 10REFFLD(CUSTOMERR/CSID *LIBL/CUSTOM- A ER) A SCCSNAME R O 9 23REFFLD(CUSTOMERR/CSNAME *LIBL/CUST- A OMER) A R CTL01 SFLCTL(SFL01) A*%%TS SD 19980811 141059 YUYONG REL-V3R7M0 5716-PW1 A SFLSIZ(0100) A SFLPAG(0010) A CA03(03) A CA06(06) A OVERLAY A 30 SFLDSP A 31 SFLDSPCTL A 33 SFLCLR A 34 SFLEND(*MORE) A RECRRN 4S 0H SFLRCDNBR(CURSOR) A 1 3'CS0103D' A 1 29'有选项处理定位子文件' A DSPATR(HI) A 1 72DATE A EDTCDE(Y) A 2 72TIME A 4 2'请键入选项,按执行键继续。
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基础知识
返回
图3
返回
Information显示格式
这种显示格式主要用于显示大量的信息,以便用 户查看。在这种显示格式中,用户只能按提示的的一 些功能键但不能输入命令和选择操作选项。如图4所示。 这种显示格式主要用于显示大量的信息,以便用户 查看。在这种显示格式中,用户只能按⑶提示的的一 些功能键,但不能输入命令和选择操作选项。
广东发展银行 GUANGDONG DEVELOPMENT BANK
AS400基础知识
信息技术部研发处 2009年8月10日
AS400基础知识
认识AS400 基本概念和术语 系统操作环境 系统操作 基本操作指南
认识AS400
AS/400是当今世界上最流行的中小型、多用户 商业计算机系统,广泛应用于流通、金融证券、制 造、运输等各个行业。 AS/400是一个最典型的集 成的商用计算机,它把计算机系统通常要用到的一 些功能如网络通信功能,数据库管理功能,安全管 理功能完全集成在AS/400操作系统中,其操作系统 是OS/400(Operating System/400)。 在OS/400中还含有一个功能强大的数据库管理 系统DB2/400,这是一个全功能的开放性的关系数 据库系统,是IBM DB2家族中的一个成员。
返回
开发工具
AS400的应用开发工具有PCOM,主要由以下部分组成:
PDM PDM是对库、目标以及成员进行管理的工具 。相关命令有STRPDM。 SEU SEU为程序文本输入提供编辑界面和编辑手段。相关命令有:STRSEU。 SQL SQL:结构化查询语言。相关命令有:STRSQL。 SDA 屏幕设计工具,可根据屏幕显示自动生成DDS源代码。相关命令有: STRSDA 。 RLU 报表设计工具,可根据报表显示自动生成DDS源代码。相关命令有: STRRLU 。 返回
AS400 操作指南
AS/400 系统操作员指南广州通亿计算机科技有限公司2002年第二版目标了解 AS/400 基本结构 ---- ---- 硬件及操作系统组成掌握 AS/400 操作方法 ---- ---- 命令,菜单及在线帮助掌握 AS/400 基本维护方法1,了解 AS/400 故障类型2,掌握 SST 使用方法,检查系统状态3,会查找手册,了解问题性质4,了解手动开机步骤,并会操作目录第一章, AS/400 系统概述第二章, AS/400 基本操作第三章,手动开机介绍第四章, AS/400 故障分析介绍第五章,常有参考手册说明第一章 AS/400 系统概述一,IBM i系列简介未来发展Domino 专用处理器性能Domino 专用处理器工作范围二,基本概念完整的系统,集成了关系型数据库和网络功能等特性。
特点:1,易于使用2,系统无缝的成长和提高3,针对商业环境而做的侧重于输入--输出方面的优化设计系统层次化架构:图1 - AS/400 系统体系结构MI(机器接口)的功能:图2 – MI 功能面向对象的技术:提高系统和其数据的整体完整性用户无须考虑对象所要占用的空间,系统会自动分配提高系统的灵活性,代码再使用,编程的效率和降低出错率单层次的存储概念微处理器的簇形结构SOIO n-chip Copper-wiring 技术热插拔第二章 AS/400 基本操作一,面板操作二,系统启动和停止三,处理及报告系统问题四,常用系统维护方法及命令说明OS/400 命令组成方法缩写惯例:WRK DSP CHGDEV TAP CMN PRT DSK SYS PWR LOG CMD STS CFGMSG MSGQ OUTQ PRB QHST例如:WRKOUTQDSPMSGWRKSYSSTSDSPLOGOS/400 命令中常用的功能键F1 帮助及说明 ( 针对光标所在位置)F4 列出可能选项 ( 或称:参数),针对光标所在位置F5 刷新F10 显示附加选项PGDN 向下翻页PGUP 向上翻业用户及权限:QSYSOPR --------- 系统定义QSRV --------- 系统定义,为系统维护使用QSECOFR --------- 系统定义,为系统中最高权限重点介绍:1, WRKSYSSTS2, STRSST3,全系统备份4,清洗磁带机方法5,常有维护命令命令说明GO *ALL 出所有系统命令的菜单GO cmddsk 到硬盘命令菜单GO cmdhdw 到硬件命令菜单GO cmdpwr 到电源命令菜单GO cmdsys 到系统命令菜单GO SAVE 到备份菜单GO RESTORE 到恢复菜单GO main 到主菜单anzprb 分析一个新问题chgmsgq qsysopr *break 改变系统操作员信息为中断方式dltprb 删除问题日志中超过30天的记录dspjob 显示一个作业DSPJOBLOG 显示作业日志dsplog qhst 显示历史日志dspsysval 显示系统值endsbs 结束子系统inztap 格式化磁带pwrdwnsys *immed 关系统电源savsys 保存系统signoff 退出用户STRSST 启动系统维护工具vfycmn 显示通讯确认屏幕vfyprt 确认打印机是否正常vfytap 确认磁带机或光盘机状态vfycfg 确认配置 ( 如设备,I/O 处理器或通讯线是开还是关断 ) WRKCFGSTS 显示所有 I/O 处理器的状态wrkdevd 处理所有设备描述wrkoutq 处理输出队列wrkprb 显示问题日志wrkhdwprd 显示硬件产品wrkhdwrsc 显示资源名WRKSYSSTS 显示系统状态第三章手动开机介绍1,系统面板上选择手动方式2,如果系统还没有上电,按面板上的电源开关3,开主控台4,一切正常后,主控台会显示如下画面:IPL or Install the SystemSelect one of the following1. Perform an IPL2. Install the operating system3. Use Dedicated Service Tools ( DST )4. Perform automatic installation of the operating systemSelection__5,键入 “ 1 ,按执行键”6,系统会出现如下画面,需要人为介入:A,Display Messages按 F12 键B, Sign On以 QSECOFR 注册C, Select Products to Work with PTFs按 F12 键D, IPL Options输入系统日期和系统时间E, Display Messages按 F12 键7,出现主菜单后,若要恢复常规状态,采取以下步骤:A,在系统面板上,将手动改为常规方式B,键入命令:pwrdwnsys *immed restart(*yes)第四章 AS/400 故障分析介绍一,故障分析包括:1,故障的确定确定是软件还是硬件故障2,故障的隔离找出故障的原因二,正确的故障分析,需注意以下几点:1,准确的描述故障及其表现特征2,确认它是否为一个新问题还是已发生过3,通过以上步骤,确定所须的正确的信息4,收集信息5,确定要解决故障须联络的人三,通常须收集的信息:1,QHST 中相关时间段的打印输出2,错误日志 ( ERROR LOG )STRSST3,系统硬件配置WRKHDWPRD4,相关时间段的 QSYSOPR 的信息DSPMSG QSYSOPR5,问题发生的日期和时间四,系统故障的外部表征:stops --------- 死机1,Hard2, Incorrect optput --------- 不正确的输出3,Job--------- 作业循环loops--------- 作业等待waits4,Jobloop--------- 系统循环5,Systems6, Systems wait -------- 系统等待7,Messages--------- 信息8,OSproblem --------- 操作系统问题9, VLIC problem --------- 微码问题10,Communication problem --------- 通讯问题11,IPLproblems --------- IPL问题--------- 工作站死锁12,Woekstationlocksstops --------- 死机1,Hard* 系统注意( Attention ) 黄灯亮,并有代码显示在面板上* 工作站键盘不能输入* DST 画面出不来,功能选择项 21 不工作--------- 不正确的输出optput2,Incorrect* 系统继续运行,作业正常结束,但后来发现输出不对* 问题通常可再现* 一些不该发生的事发生了* 一些该发生的事没有发生3,Messages --------- 信息* job log ( 作业日志 )* qsysopr 的 MSGQ ( 信息队列 )* qhst ( 历史记录 )4,Hang --------- 挂起* 系统挂起”特征象 “ 死机,但没有代码显示* 作业挂起WRKACTJOB,作业没有消耗任何系统资源5,Loops --------- 循环* 系统循环> 处理器活动率灯显示 100%> 所有工作都停下来* 作业循环> 处理器活动率灯显示 100%> 系统性能下降> 作业没有在预期的时间内结束> 其他作业继续运行,但速度显得非常慢6,Communicationproblem --------- 通讯问题* 线路( LINE ),控制器( CTL )或设备( DEV ) 不正常problem --------- 性能问题7,Performance* 有关性能的系统命令> WRKSYSSTS> WRKDSKSTS> WRKACTJOB8,Workstationlocks --------- 工作站死锁* 15 次以上在同一台设备以同样的用户帐号注册失败第五章常有参考手册说明《 9406 270 Problem Analysis 》《 AS/400 Service Fuction 》。
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 处填上小数位数。
As400常用命令
DLCOMMSBS - where communication polling jobs are processed.
EZFORMS - area in computer that EZFORMS monitors are processed.
PRINTSBS - where all parts and service print jobs are processed
QUSRSYS Security Library - Contains message and output queues
QGPL General Purpose Library - Contains miscellaneous information and IBM programs
11、?DEALERLINE XL (user) Libraries
QBATCH - area to process jobs in background and allow the terminal to be
used for other functions while the processing occurs
QCMN - where communication jobs are processed
10.创建一个用户crtusrprf
11.查看当前所有用户情况wrkusrjob
wrkusrjob user(*all) status(*active) jobtype(*interact) astlvl(*basic)
12.查看关机开机情况go power
13.提交批处理sbmjob
14.查看当前用户所提交的处理wrksbmjob
14:WRKOUTQ: and press Enter to work with all output queues
AS400基本操作及常用命令
目录1AS/400基本操作 (4)1.1屏幕显示 (4)1.1.1菜单 (4)1.1.2输入 (5)1.1.3列表 (6)1.1.4帮助 (7)1.2命令 (7)1.2.1命令语法 (8)1.2.2命令提示 (8)1.3信息 (9)1.4GUI接口-操作导航器 (11)2AS/400常用命令 (11)2.1CL 命令的作用 (11)2.2CL 命令的分类 (12)2.3系统菜单 (13)2.4基本操作命令汇编 (13)2.4.1CALL (15)2.4.2CHGJOB (15)2.4.3CHGUSRPRF (15)2.4.4CPYF (16)2.4.5CRTCBLPGM (16)2.4.6CRTCLPGM (16)2.4.7CRTDSPF (16)2.4.8CRTJRNRCV (16)2.4.9CRTPF (19)2.4.10CRTPRTF (19)2.4.11CRTRPGPGM (19)2.4.12CRTSRCPF (19)2.4.13DSPMSG QSYSOPR (19)2.4.14DSPJOBLOG (19)2.4.15DSPLOG (19)2.4.16DSPPTF (19)2.4.17DSPTAP (19)2.4.18ENDWTR (20)2.4.19GO LICPGM (20)2.4.20GO POWER (20)2.4.21INZTAP (20)2.4.22PWRDWNSYS (20)2.4.23RSTOBJ (20)2.4.24RSTLIB (20)2.4.25SAVOBJ (20)2.4.26SAVLIB (20)2.4.27SMBJOB (21)2.4.28SNDBRKMSG (21)2.4.29STRSBS (21)2.4.30STRDFU (21)2.4.31STRPDM (21)2.4.32STRPRTWTR (21)2.4.33STRRLU (21)2.4.34STRSDA (21)2.4.35STRSEU (21)2.4.36STRSQL (22)2.4.37WRKACTJOB (22)2.4.38WRKCFGSTS (22)2.4.39WRKHDWPRD (22)2.4.40WRKHDWSRC (22)2.4.41WRKJOBQ (23)2.4.42WRKJOBSCDE (23)2.4.43WRKLIBPDM (23)2.4.44WRKMBRPDM (23)2.4.45WRKMSGD (23)2.4.46WRKOBJLCK (23)2.4.47WRKOBJPDM (23)2.4.48WRKOUTQ (23)2.4.49WRKPRB (23)2.4.50WRKSBMJOB (24)2.4.51WRKSBS (24)2.4.52WRKSBSD (24)2.4.53WRKSPLF (24)2.4.54WRKSYSSTS (24)2.4.55WRKUSRPRF (24)2.4.56WRKWTR (24)1AS/400基本操作AS/400用户接口满足各种用户的需求,无论他们是新用户、数据管理人员、系统管理员、或程序员。
AS400培训资料(下)
AS400培训资料(下)AS400应用开发培训高级应用与交易实现前言本阶段的培训,在上一级培训的基础上,讲解业务系统的处理以及交易的实现。
目的是使大家掌握如何在AS400上实现具体的交易,完成本次开发任务。
在讲解业务系统的例子程序和会计记帐核心的过程中我们将穿插讲解AS400中一些编程方式和一些简单工具的使用。
由于篇幅和时间的关系在本教材中对一些简单工具不作具体的介绍,请大家作好记录。
同时为了配合本次培训,我们将下发两本教材,一本是操作码手册,另外一本是本公司原来出的IBM AS400 培训教材第二分册,对这两本教材的内容我们可能不作具体的讲解,主要是给大家在学有余力的情况下进行自学,以及今后进行实际编码时的参考手册。
对于一些非常少见的应用,我们不作讲解,请大家参考下发的教材或使用联机的帮助。
使用F6或其他方式建立的成员在Opt选14编译物理文件参与编译其他类型的目标(Object) SLRRPG(可执行程序 *PGM) 物理文件,逻辑文件,打印文件等参与编译,若RPG程序的F表进行了相应的定义其他需要参与编译的目标第一章 RPG程序使用RLU的方法在上一期的培训中我们简要的介绍了RLU的一些用法,现在我们来学习RLU的一些应用,以及如何在RPG程序中使用RLU生成的打印文件在今后的设计过程中,应业务人员的要求,在报表中对于一些域的属性可能要进行修改。
以下是将光标移到域后出现的域属性内容Work with Field KeywordsField . . . . . . . . : ' 客户 ... Record format . . . . : HEADType options, press Enter.2=Specify 4=RemoveOpt Keyword Opt Keyword Opt KeywordALIAS EDTCDE MSGCONBARCODE EDTWRD PAGNBRBLKFOLD FLTFIXDEC PRTQLTYCDEFNT FLTPCN REFFLDCHRID FNTCHRSET SKIPACHRSIZ FONT SKIPBCOLOR HIGHLIGHT SPACEACPI IGCALTTYP > SPACEBCVTDTA IGCANKCNV TEXTDATE IGCCDEFNT TIME> DFT IGCCHRRTT TRNSPYDLTEDT INDTXT UNDERLINEBottomF3=Exit F5=Refresh F9=Input keyword parameters F10=Specify informationF12=Cancel F16=Remove all keywords选择(opt)2 进行该项的内容说明 4 是取消该项说明在这些选项中经常用到的是:DFT 若前面有”>”则说明该项是常量域,否则是变量域。
AS400中文教程
AS400中文教程AS400是一种使用广泛的主机操作系统,也是一种经典的企业级计算机系统。
它具有稳定性、可靠性、安全性和易用性等特点,广泛应用于企业、金融、物流、制造等领域。
本篇教程将介绍AS400的概念、原理、操作和应用等内容,帮助初学者了解和掌握AS400系统。
一、AS400是什么AS400(即IBMi)是IBM公司推出的一种企业级计算机系统。
它以稳定性、可靠性和安全性著称,广泛应用于企业的核心业务系统和数据处理中心。
AS400采用了先进的虚拟化技术,可以同时运行多个操作系统和应用程序,提供强大的计算和存储能力。
二、AS400的原理AS400的核心原理是通过操作系统管理和控制计算机硬件资源,提供一种可靠、高效的计算环境。
AS400操作系统采用了独特的对象概念,将计算机资源(例如打印机、磁盘、网络连接等)抽象为对象,通过开放的API接口提供给应用程序使用。
这种面向对象的设计可以方便地进行系统管理、应用开发和资源分配。
三、AS400的基本操作1.登录系统:AS400通常通过终端或PC客户端进行远程登录。
输入正确的用户名和密码后,即可登录到系统。
2.发布任务:AS400支持多任务处理,可以同时运行多个任务。
通过发布任务可以在系统中创建新的任务,并指定其优先级和执行时间。
3.管理文件:AS400系统使用基于对象的文件系统,管理文件非常方便。
可以通过命令行或图形界面操作,创建、删除、复制和移动文件等。
4.资源监控:AS400提供了强大的系统监控工具,可以实时查看系统的运行状态、资源使用情况和性能指标等。
通过监控可以及时发现和解决系统问题,保证系统的稳定运行。
四、AS400的应用1.金融系统:AS400可以作为金融机构的核心业务系统,处理各种金融交易、资金结算和风险管理等业务。
2.物流系统:AS400可以用于物流企业的仓库管理、货物跟踪和配送管理等业务。
3.制造系统:AS400可以用于制造企业的生产计划、工艺控制和品质管理等业务。
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基本命令和操作
数据描述规范D DS通过文件的记录字段仅一次的说明,可定义多种访问路径,多个程序使用。
结构化查询语言SQL/400组成:(1)SQL运行支持程序(2)SQL预编译程序(3)SQL交互式接口(4)DB2 QUERYMANAGE R FOR AS/400,提供菜单、填空式提示的交互式接口,允许建立、增加、维护数据,和运行报表PDM(PROGRA MMING DEVELO PMENT MANAGE R)处理源代码、对象和库SEU(SOURCE ENTRYUTILIT Y)建立和编辑源文件成员S TRSEUSDA(SCREEN DESIGN AID)交互式设计、创建和维护应用屏幕RLU(REPORT LAYOUT UTILIT Y)交互式定义打印报表的格式分布DFU(DATA FILE UTILIT Y)快速定义、创建面向数据录入、查询或文件维护STRDFUQUERY/400获取外部描述数据库文件信息S TRQR YCL(CONTRO L LANGUA GE)调用AS/400的所有系统功能。
简化操作,控制工作流程,设置作业运行环境等AS/400三级存储结构库(LIBRAR Y)——数据库文件(F ILE)——成员(MEMBER)一级目录——二级目录——三级目录字段是用来描述某一属性的一组值;字段定义是对字段属性的说明记录是把一组字段放在一起命名,用来说明某一事物;记录格式是对记录中所有字段的简单说明以及对各字段排序的说明文件是已命名的一组记录,文件说明是对文件所有的记录格式和存取路径的说明,数据库文件分为数据文件和源文件,数据文件就是程序中使用的物理文件和逻辑文件。
物理文件(*FILE,PF-DTA):在SQL中称做表(TABLE),含有系统实际存储的数据,每个物理文件只有一个固定长度的记录格式。
AS400教程
AS400教程【新客网AS400教程】AS/400 CL (Control Language) 控制语言是用户与操作系统之间的主要接口。
AS/400 CL控制语言基础◇课程大纲:l 第一章概述l 第二章 CL 编程l 第三章程序间的通讯l 第四章测试功能◆第一章概述提要:* CL 命令的作用* CL 命令的分类* 系统菜单1.1 CL 命令的作用CL (Control Language) 控制语言是用户与操作系统之间的主要接口。
可以说用户治理和操作 AS/400 系统,均可以通过 CL实现。
用户在不同的工作站或客户端可以同时使用 CL ,其输入方式有五种: * 在命令行输入* 在菜单画面选择* 在 work with 菜单中,option 选项* 在 CL 程序中执行* 远程调用前三种输入方式给用户提供一种交互式的操作方法,只执行一条命令;第四种方式给用户提供一种操作,并包含逻辑控制,可以完整地实现一项功能;第五种方式给用户提供在客户端直接执行主机操作的接口。
由于 CL 使用了统一的命名方法,提供 prompt 式的提示功能和具体到域值的在线帮助,以及自动生成命令参数的缺省值, 再加上有效性检查,从而使得 CL 的使用变得非常简单、方便和灵活。
1.2 CL 命令的参数CL 使用了一种很科学,较为成功的命名方法。
每条命令由命令名和一系列参数组成。
命令名通常由动词加上接受动词的名词(定义为目标Object)组成,单词通常缩写为三个字母。
例如:CL 命令命令名Send Message SNDMSGCopy File CPYFWork with Device Desripyions WRKDEVDCL 的参数由要害字和参数值组成,要害字通常和命令一样缩写,它用于说明参数的作用,在命令输入屏,按F11 键,即可看到要害字。
在命令行输入命令时,假如参数是按照固定的顺序输入,则可以省略要害字。
例如:SNDMSG MSG (HOLLEO) TOUSR (LENG)命令名要害字参数值大多数 CL 都是针对目标而言,目标是一个占据了一定存储空间的实体,它包括自身属性及其数据特征的描述,系统可以对它进行操作。
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如何编写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入门
可与其他终端或系统传递数据
控制语言(CL-Control Language)
指令的形式
指示操作的命 令
指令名 + 参数
指示操作的内容
例:CALL PGM(SEIKYU)
指令名命名规则
动词 + 目的语
例:生成指令---CRTXXX(CReaTe XXX) 开始指令---STRXXX(STaRt XXX) 结束指令---ENDXXX(END XXX)
记录的读取方法
➢ 指定读取顺序 ➢ 限定读取字段 ➢ 选择条件
DB文件例
a.
[物理文件] 得意先マスター
得意先 得意 住所 電話 売掛金
番 号 先名
番号 残 高
b. 直接邮寄用 得意先番号
记录样式
c.
读取顺序
债权管理用 売掛金降序 売掛金10万元以上
记录样式
[逻辑文件]
得意先 得意 住所 番号 先名
源程序文件成员:生成/修改 数据库文件成员:表示/删除
Query(动态信息检索)
Query的使用流程
➢ 定义:哪个文件的哪个记录按何种次序输出
➢ 执行:结果可输出到显示器,打印机,文件
Query的机能
➢ 选择特定的记录
QUERY
DB文件
➢ 按一定顺序分类
➢ 集计
➢ 四则运算
显
➢ 编辑打印
示
打印报告
DDS登录 (STRSEU)
生成打印文件 (CRTPRTF)
辅助存储器 源文件 打印文件
程序的生成
程序类型
➢ 对话型:利用画面与操作员边对话边处理 ➢ BATCH型:无需操作员参加统一处理
文件类型
➢ DB文件 ➢ 画面文件 ➢ 打印文件
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简明操作手册
AS/400简明操作手册一、认识IPL1.IPL设置面板设置为:01 B N V=F其中:第一部分表示目前状态,01表示显示状态、02表示改动状态第二部分B表示打过补丁、D表示安装操作系统第三部分N表示自动启动、M表示手动启动第四部分V=F表示快速启动,S代表慢速启动(为了在启动时对系统部件进行全面检测)注:面板LED灯(绿灯闪烁)表示已经关机。
开机状态下LED灯(绿灯长亮)。
2.控制面板操作:在正常启动状态时:01 B N V=F在手动起机状态时:01 B M V=F在安装操作系统时:01 D M V=F (光盘启动)注:在手动状态下进入操作系统后,严禁触按电源开关,如违反操作造成损失,后果自负。
注:不建议平时使用控制面板关机。
这种强制性关机有可能会造成系统及用户的数据丢失。
再次开机时,系统将花费额外的时间来检查这些数据是否受损。
启动系统启动前确认系统控制面板上显示的启动参数是否为你需要的参数。
如果不需要人为干预的启动,请选择N自动启动状态。
(一般设为N)。
二、安装CLIENT ACCESS EXPRESS首先连线,将0367的一端接在AS/400DSD背面板上,另一端接在一台PC 的COM口上。
将随机附带的光盘放入PC的CD-ROM中,在出现安装界面后按下一步,选择全部安装。
安装虚拟Modem,进入控制面板,选择添加硬件设备,不检测设备而手工添加,选择调制解调器,从软盘安装,选择浏览,找到刚才安装Client Access 的目录\IBM\Client Access\Aoc\Inf,发现有一驱动文件,选中后按确定,安装完成。
重新启动计算机。
点击开始-程序-IBM AS/400 CLIENT ACCESS EXPRESS-AS/400操作控制台,填入AS/400名称,设置为直接连接、仅控制台连接、不允许远程PC连接。
完成后将出现一窗口显示正在连接,过几十秒将出现一会话窗口,连接成功。
如果发现连接不成功,请换一台PC重试,直到连接成功。
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开始
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一: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):对数据进行持久存储。
2. 设备文件(Device files):容许访问的扩展设备,包括显示文件,打印文件,磁盘文件等。
3. 一般文件(save files):保存在硬盘上的文件4. 远程文件(DDM files):保存在远程系统上的文件。
b) 每一个IO设备都对应有一个描述文件,在程序中如果要使用到IO设备,就要指定相应的文件。
这主要根据操作代码来决定,有的操作代码是设备依赖的,必须指定特定的设备才可以使用,而有些操作代码是和设备独立的,如WRITE等。
产用的设备类型有:RPG Device Type ――――> iSeries File Type DISK ――――>database, save, DDM filesPRINTER ――――>printer filesWORKSTN ――――> display, ICF filesSEQ ――――>tape, diskette, save, printer, databaseSPECIAL ――――>N/Ac) 描述文件的类型:1、一般程序描述文件(program-described file):在输入输出描述的文件中会做相应的处理。
2、扩展描述文件(externally described file):主要是多个应用程序可以共享数据a) 通过针对描述文件的不同配置,RPG程序实现了程序和数据的分离,这样可以针对不同的保存数据的设备和形式,来对描述文件进行配置,这样就很容易的实现的程序的灵活性。
在设备进行升级以后,程序依然可以使用。
二、通过ILE建立RPG程序:a) ILE(Intergrated Language Environment)的介绍ILE是AS400中提供的一套增强编程的工具包,他针对不同的编程语言,都有相应的环境支持,ILE RPG,ILE C,ILE COBOL,ILE CL 等。
b) ILE的优势i. ILE 本身提供了许多程序模块,供程序员调用ii. 提供编译的环境,可以对代码进行调试iii. 提供优化的调用性能iv. 可以集成多种语言v. 对代码进行优化vi. 而且提供老版本的代码转换到新版本的代码,主要是针对RPG程序和CL程序。
c) 使用ILE建立一个应用程序的例子vii. 建立一个库,取名PRTLIBCRTLIB LIB(PRTLIB) TEXT(‘SAMPLE ILE APPLICATION’)viii. 将PRTLIB设置为当前库CHGCURLIB CURLIB(PRTLIB)ix. 建立一个源码文件在PRTLIB中CRTSRCPF FILE(SOURCE) RCDLEN(112) TEXT(‘SAMPLE ILE Appliaction’)x. 编辑文件,输入文件内容,分配源文件类型是CLP,描述信息是OPM,WRKMBRPDM FILE(PRTLIB/SOURCE)xi. 按F3键,退出后,建立命令,系统将会产生CRTCLPGM命令。
三、SEU工具的使用SEU(Source entry utility)源码输入工具。
如图:这个界面的输入分为两部分:上面的SEU:在之后,可以输入SEU编辑的命令,包括查找等命令,都是辅助编辑使用,可以在输入代码的时候,随时输入命令。
代码输入在Beginning of data 和End of data之间输入代码,如果要插入一行,必须在行首位置输入I,系统会自动增加一行,同时提示出代码行号。
在此界面按F1,有具体的帮助信息。
四:源码示例00.10 * PRTPGMR - Print program - OPM00.20 *00.30 * QADSPOBJ is the outfile from DSPOBJD - Override occurs in CL00.40 FQADSPOBJIF E DISK00.50 FQPRINT O F 132 OF PRINTER00.60*********************************************************** *****00.70 * Parameter list00.80 C *ENTRY PLIST Parm list00.90 C PARM LIB 10 Library01.00 C EXCPTHDG Prt heading01.10*********************************************************** *****01.20 * Read a record01.30 * QLIDOBJD is the format name of the QADSPOBJ file01.40 C READ QLIDOBJD 20 Read01.50 * Continue reading until EOF01.60 C *IN20 DOWEQ'0' Not EOF01.70*********************************************************** *****01.80 * Use a subroutine to convert the date from MMDDYY to YYMMDD01.90 C MOVE ODUDAT MMDDYY 6 MMDDYY fmt02.00 C EXSR CVTDAT Convert date02.10 C MOVE YYMMDD LSTUSD 60 Last used dt02.20 C EXCPTDETAIL Print detail02.30 C OF EXCPTHDG Prt heading02.40 C READ QLIDOBJD 20 Read02.50 C ENDDO Loop Back02.60 * End the program02.70 C SETON LR Set LR02.80*********************************************************** *****02.90 C CVTDAT BEGSR03.00 * Convert date from MMDDYY to YYMMDD format 03.10 C MOVE MMDDYY WORK2 2 Move YY03.20 C MOVELWORK2 YYMMDD 6 Move YY03.30 C MOVELMMDDYY WORK4 4 Move MMDD03.40 C MOVE WORK4 YYMMDD Move MMDD03.50 C ENDSR03.60*********************************************************** *****03.70 OQPRINT E 206 HDG03.80 O 25 'Objects '03.90 O 'in Library - '04.00 O LIB04.10 O E 2 HDG04.20 O 6 'Object'04.30 O 18 'Obj type'04.40 O 30 'Attribute'04.50 O 42 'Last used'04.60 O E 1 DETAIL04.70 O ODOBNM 1004.80 O ODOBTP 1904.90 O ODOBAT 3305.00 O LSTUSDY 41对于源码的解释如下:由于还没有很清楚,所以暂不翻译00.40The externally described database file is named QADSPOBJ.This is thename of the file provided by the system that is used when an outfile iscreated by the DSPOBJD command. The system essentially copies theformat of the model file to the outfile named on DSPOBJD. The RPGprogram describes the file in QSYS because it wants to use the formatthat exists in the file. An OVRDBF command in the CL program causesthe DSPOBJDP file in QTEMP to be read instead of the file that is compiledinto the program. Because both files use the same format, the compiledRPG program knows what the layout of the format is.00.50 The QPRINT file is described as afixed-format file. Since no OVRPRTFcommand was specified prior to the open operationof QPRINT, thesystem provides access to the first QPRINT filefound on the library list.This is probably the QPRINT file supplied by IBMin the QGPL library.This file causes spooled printed output to occur. 00.80 The PLIST and PARM operation codes providethe means to pass in thevariable library name from the CL program. Thislibrary name is printedon the heading line.01.00 The EXCPT statement prints the heading lineas output.01.40 The program reads a record using the QLIDOBJD format. This is thename of the format used in the QADSPOBJD outfile.01.60 If end of file is detected, the program sets the LR indicator on and returns.01.80 A subroutine is used to convert thedate-last-used field (which exists in theoutfile in a MMDDYY format) to a YYMMDD format. There are many solutionsto the problem of reformatting a date field. Inthis example, the subroutinemethod is used because in a later chapter we change from anRPG subroutine to a subprogram.01.90 The program moves the ODUDAT field (date last used) to a common field(MMDDYY) and then calls the subroutine. This typeof coding creates ageneral-purpose subroutine that can convert anyMMDDYY date format.When the subroutine returns, the YYMMDD field is moved to the fieldnamed LSTUSD, which is a decimal field, so that editing can occur.02.20 A detail line is printed.02.30 If printer overflow occurs, an EXCPT operation is used to print the headingon the next page.02.40 The program loops back to read another record.03.10 The subroutine converts the date to thecorrect format by using MOVE andMOVEL operations. There are many other ways toalter the date format,but this method allows the same code to move to a subprogram with easein a later chapter.03.70 The heading output includes the library name that was passed into theprogram.04.60 The detail line prints several fields.。