RPG AS400程序员培训手册97100.docx

上传人:you****now 文档编号:68921828 上传时间:2022-12-30 格式:DOCX 页数:28 大小:63.54KB
返回 下载 相关 举报
RPG AS400程序员培训手册97100.docx_第1页
第1页 / 共28页
RPG AS400程序员培训手册97100.docx_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《RPG AS400程序员培训手册97100.docx》由会员分享,可在线阅读,更多相关《RPG AS400程序员培训手册97100.docx(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、8 其它 8.1 报表打印在这里,简单说一下报表。其实据说RPG 设计之初,主要就是为了解决报表问题。不过发展到现现在,在在我接触触过的系统中,觉得报表在RPPG 编编程之中中反而退退居其次次,大部部分程序都是对数数据库中磁盘文件(即即PF 文件)的的操作。报表文件其其实在某种意义上与普普通的磁磁盘文件很很类似,都都是有记记录格式式(ReecorrdFormaat),都都可以进进行写操操作(WWRITTE),RPPGLEE 的程程序对它们的操作作方式也也比较雷同。所所不同的是普普通的磁磁盘文件的的数据是是存储在数据据库中,而而报表文件件WRIITE 了之后后,是以以脱机文件(Sppooll F

2、iile)的的形式存存在。所所以在一一个库中,磁磁盘文件具具有唯一一性,即即不能有有同名的的磁盘文件;而在同同一个输输出队列中,同同名的报报表文件件(即生生成的脱脱机文件件),允允许有多个个。要做一个全全新的报报表打印印,大致致上可以以分为画报表文件件(PRRTF),与与编写打印印程序这这两部分。一、画报表表文件(PRTF)1、 新建建立一个个属性为为PRTTF的文文件,然然后使用用19 进入报表编辑状态。(即即STRRRLUU)2、 定义义一个新新的记录录格式(RRecoord Forrmatt):DRR + F188 + F100,注意意看下方方的功能能键说明3、 在一一个记录录格式之之下

3、,追追加内容容时,要在在新的编编辑行前前加“CLCC”,表表示此行行的内容,是是属于上上面记录录格式的的。4、 编辑辑行前加加:DC: 定定义常量CF: 使使当前行行的内容容居中5、 常用用功能键键:F13:标记/ 取取消标记记(光标所指的的字段)。多多试一下就就知道使使用方法法,可以以将同一行的多多个相连连的字段段标记成为一个块(对首尾两两个字段段操作FF13 即可)。高亮部分表表示已被被标记的块。F14:将已标记的的块COPPY 到到光标指定处。(其其实这个我我用得不不多)F15:将已标记的的块MOVVE到光光标指定处。(这个用得得不少)F16:删除已标记记的块。(这个用的的频率也不不少)

4、F11:定义新变量量F23:进入当前字字段的功功能菜单单画面6、 对新新变量的定定义,按F111 之之后,见见到画面面如下:Editeed llenggth . . . . . . . . . . . . : 11Recorrd fformmat . . . . . . . . . . . . : RRCD0001Numbeer oof kkeywwordds . . . . . . . . . : 0Numbeer oof iindiicattorss . . . . . . . . : 0Type chooicees, preess Entter.Fieldd . . . . . . .

5、. . . . . . . . . FLDD0011 NaameOptioon iindiicattorss . . . . . . . . . . 01-99, N001-NN99More inddicaatorrs . . . . . . . . . . N Y=YYes, N=NoStarttingg liine . . . . . . . . . . . . 1-2255Starttingg poosittionn . . . . . . . . . . 6 11-2555, +nnnLengtth oof ddataa . . . . . . . . . . . 11 1-3788,

6、 +nn, -nnn翻页,还有有:Data typpe . . . . . . . . . . . . . . 1 11=Chharaacteer2=Zonned3=Flooatiing poiint4=Opeen5=Graaphiic6=Datte7=Timme8=Timme sstammpDecimmal possitiionss . . . . . . . . . . 0-331, +n, -nnReferrencce aa fiieldd . . . . . . . . . . N YY=Yees, N=NNoUse rrefeerenncedd vaaluees . . . . .

7、. . Y Y=YYes, N=No可以采用直直接定义义长度、类型的方方法,即即在第11 页的最末末尾,LLenggth of datta 处处,填上字段长长度;如如果是字字符型,就就不需要要再填其其它内容容;如果果是数字字型,在在第2 页Deccimaalposittionns 处处填上小小数位数数。也可以采用用参照字字段的方方法(即即参照已已存在的的PF 文件中中的字段段)。如如果选用这种方法,就用用需要在在Lenngthh off daata 以及Deecimmal possitiionss 中填填写内容容,将RRefeerennce afieldd 项填为“Y”,然然后按确确认键(好好

8、象F110 键键也可以以),然然后可以以看到该该项高亮亮显示。此时再按FF10,可可进入该字段的的功能菜菜单(也可可以通过过在报表编辑状态下,直直接在当当前字段处按FF23 进入):Opt KKeywwordd Oppt KKeywwordd Oppt KKeywworddALIASS DFFT IIGCCCHRRRTTBARCOODE DLTTEDTT INNDTXXTBLKFOOLD EDTTCDEE MSSGCOONCDEFNNT EEDTWWRD PAGGNBRRCHRIDD FLLTFIIXDEEC PPRTQQLTYYCHRSIIZ FFLTPPCN REFFFLDDCOLORR

9、FNNTCHHRSEET SSKIPPACPI FFONTT SKKIPBBCVTDTTA HHIGHHLIGGHT SPAACEAADATE IGCCALTTTYPP SPPACEEBDATFMMT IIGCAANKCCNV TEXXTDATSEEP IIGCCCDEFFNT TIMME以上菜单中中,标记记为蓝色色的,是是我常用用的几个个选项。在这些选项项前面,选选2,即是是对当前字字段加注注这些功能能;选4,即是是去掉这这些功能。要参照已知知字段定定义变量,则在“REFFFLDD”选项前选2,可见Fieldd . . . . . . . . . . . . . . .Recorrd ffo

10、rmmat . . . . . . . . . .File . . . . . . . . . . . . . . .Libraary . . . . . . . . . . . . . *CURRLIBB各选项的含含义:Fieldd: 当当前变量所参参照的字字段Recorrd FFormmat: 当前前变量所参参照字段段,在PPF 文文件中所所属的记记录格式式File: PFF文件名名Libraary: PFF 文件件所在的的库名7、 其它它几个常常用功能能选项的含含义:SKIPAA:Skiip AAfteer, 在WRRITEE 操作作时,写该字段后后,自动动换页;SKIPBB:Skiip

11、 BBefoore 在WRIITE 操作时,写该字段前前,自动动换页SPACEEA:Spaace Aftter 写该字段后,再再打印一一个空格格;SPACEEB:Spaace Befforee 写该字段前前,打印印一个空空格(可可用来解解决错行问题)EDTCDDE:定定义当前字字段的显显示方式式,比如如说当前字字段为数字类型时,是否否显示逗号,前前面是补补零等等等。根据据F1 键,看Heelp 中的说明:Edit Codde DDesccripptioon NNo SSignn CRR Siign - SSignn(R) - Siggn(LL)Commaas aand zerro bbalaa

12、ncees 11 A J NNCommaas 22 B K OOZero ballancces 3 CC L PNo coommaas oor zzeroo baalanncess 4 D MM QUser deffineed eeditt coodess 5-9Date fieeld ediit WWDate ediit YYSupprresss leeadiing zerros Z二、编写打打印报表的程程序1. 对报报表文件件的声明明:FEF43322PP O E PPRINNTERR OFFLINND(*IN999)可以看到,操操作方式式是“OO”,即即只写;文件类型为为“PRIINTE

13、ER”,即即打印文文件;后面的OFFLINND 关关键字表表示该报报表文件件的换页页指示器器为99;即即写报表,当当写满一页时,*INN99 自动变为为1;然后后报表自动换换页,*INN99 再自动变变回0;其实这一项项我觉得控制制起来有有点不爽爽,所以以我通常常都是自自行控制制换页,不不用这个指示器来来判断;我常使使用的自自行控制制换页的方方法在下下面会说说明。2. 对报报表文件件的处理和磁盘文件件(DISKK)一样,报表文件件其实也有OPPEN,CLOOSE,WRIITE 的操作。不过使使用OPPEN,CLOOSE 操作时,不需需要使用用USRROPNN 关键键字。同同时也因为生成的是脱脱

14、机文件件,所以以不能进进行CHAAIN、UPDDATEE 等定定位、修修改的操操作。如果在程序序中,只只需要生生成一份份报表,那那么可以不不使用OOPENN/CLLOSEE 操作作,因为程序在在运行之之初,以以及运行行结束时,已默默认打开,关闭了一一次所有有已声明明的文件,包括报报表打印印文件。但如果程序序在运行行时,需要要生成多多份报表,那那么必须在每次生成成报表前使使用OPEN 操作;在生成成完报表后,使使用CLLOSEE 操作作,以保保证脱机文文件的完完整。在生成完当当前报表前,还还可能需需要使用用CHGGPRTTF 的的命令,将将报表生成成到指定定的输出队列列中。如如果不更更改,那那么

15、报表会会生成到到当前用用户默认的脱机机文件存存放处。当一个RPPGLEE 中,生生成多份份同名报报表时,常会会在生成成报表前使使用CHHGPRRTF,以以便于管理,避避免混乱乱。报表的操作作,也与与磁盘文件(普普通PFF 文件件)类似,在在OPEEN 与与CLOOSE 之间,对各字段进进行赋值,赋值完之之后再通通过“WRIITE 记录格式式名” 的语句,来来写指定的记录格格式。3. 自行行控制换换页在声明报表表时,可以以通过OFLLINEE 关键键字,定定义换页页指示器器,不过过可能是是换页指示器的使使用方法法我摸索索得还不够,所以以使用起起来总觉觉得不够自如。我通常是先先在报表文件件中,定定

16、义一个记录录格式(RRecoord Forrmatt),该记录录格式下下只有一个字字段,同同时这个字字段的功功能选项项处要标识为为“SKIIPA”,然然后该字段尽尽量做成不可见见字符。在在RPGGLE 程序中中,当程程序运行行逻辑上判判断需要要换页时时,WRIITE这个记录格格式,就就可以实实现换页页了(也也就是通通过字段的的SKIIPA 选项来实现换换页,当然大家也也可以使使用其它它更便捷捷的方法法,这里只是是介绍我常用用的方法法,因为为我觉得这个方法比比较稳定)。至于如何判判断换页页,当然然要看具具体报表的需需求是如如何要求求的。最最重要的的,是不不要忘记定义义一个数数字型变变量用来来统计

17、当前前页已打印印过的行数数,当大大于等于于60 行,要进行换页页处理(我我通常会会留出几几行来做做为冗余,大大家可以以自已选选择,但但肯定不不能大于66 行,否否则会自动换换页)三、几点补补充呵呵,找出出我以前前写的关关于报表打印印的贴子,做做为使用时补补充1、 关于于记录格式式其实这个本本来没什什么可说的,不不过我就经常搞错,还是说说吧。同一个记录录格式之之下,格格式应该该如下:记录格式名名0001.00+ 打印印内容0002.00+ 打印印内容0003.00+每行要有这这个+,才归属于同同一个记记录格式。如如果是个个点的话话,也就就是说明这一行并不属于该该记录格格式,如如果想让让它属于于这

18、个记录格式式,就要要用CLLC 命命令;当我们用119 编编辑的时候,如如果是33 来COPPY 记记录行,系系统经常会会自动在COPPY 处处新增一个记记录格式式,所以以要注意意。(说说来简单,但但是我最最开始画报表的时候,就就曾经被这个问题折折磨)2、 关于于变量的命命名不同的记录录格式,可可以使用用相同的的变量名。有的时候,为了少写写赋值语语句,可可以直接接将变量命名名得与PPF 中中的字段段相同。(不过我不不太喜欢欢这种做做法)如果在RPPGLEE 程序序中,给给某个变量赋值,但但没有对对相应的记录格式式进行WRITEE 操作作,编译译会不通通过,报40330 字字段未定定义的错。3、

19、 关于于打印时时会错行的问题题有的时候,打打印会错错行,比比如记录录格式定定义0001.00+ 变量A(比如如说10 个字符符长)0002.00+ 变量B(比如如说5 个字字符长)变量A 的的起始处处位于第第一列变量B 在在变量A 的下下一行,且且起始处处位于第第三列当变量A=AAAAAAAAAAAAA, 变量B=BBBBBB时,会打打印出AAAAAAAAAAAABBBBBB这很正常。但当A= A或空时,本来来我们是希望望打印出出:A(或者这这里就是是一空行行)BBBBBB这样的效果果,但是是系统就会打打印成为为BBBBBBA 或或BBBBBB (没没有打印印出空行行)也就是说,当当某一行行的

20、前面面为空时,(好好象空格格也算空空)如果果下一行行有数据据,就会会挤上来。解解决办法是在在将A 字段的的首位赋赋值为非非空;如如果想让让客户看不见,可以以考虑使用汉字指指示器。想想打印空空行,也也可以用用这个办法。又或者是将将该字段的的功能选选项加上上“SPAACEBB”,即即打印前前空一格格,也可可以解决决这个问题。(报表的这个特点点困扰我最久久)4、关于报报表的测试试其实这个东东西最简单单,不过我以前前一向很很少去留留意。以前测试报报表,尤尤其是测测试换页页的时候,都都是老老老实实的用用打印机机去打,打打出来了了再检查换页页对不对,慢不不说,还费纸纸。其实我们进进入到SPPLF 里,查看

21、刚生成的的报表文件件,右上上角就有有当前的的页数,行行数,如第1 页页第1 行,右右上角就就是1/1,第第2 页第3 行,就就是3/2,好好象页数在后后面。在“possitiion to”这里,+11 就是是下一行行,W+1 就就是向右右移一列列,慢慢慢+,就可可以看到换页是否否正确了了。8.2 SSQLRRPGLLE 在RPG/RPGGLE 程序中中,也是是可以使使用SQQL 命命令的,首首先,需需要将程程序的类类型设置为SQLRPPG 或或SQLLRPGGLE,SQLL 语句的用用法都一一样,RPGG / RPGGLE 是指非非SQLL 语句使用用什么格式。这这类程序序写完之之后与普普通的

22、RRPG/RPGGLE 程序一一样编译译,运行行。不过需要注注意,SSQLRRPG 编译时时有一个个“COMMMITT”参数数,此参参数如果果没有使使用“*NONNE”,或或“*NNC”,那那么SQLL 语句中更更改的表表将会由由系统默认加一个个COMMMITT 声明明。如果执行RRPG 程序后后没有执执行COMMMITT 操作作,那么么当时数据是是更改过过来的,但但当用户户SIGNOOFF 之后,SSQL 更改的的表数据据将会回回滚(这也是在在维护阶阶段常见的维护失误之一)。不过这个参参数只会会影响到到SQLL 语句中做做了数据据更改的的表,不不会影响响到RPPG/RRPGLLE 程程序段中

23、的数据。1、不带任任何参数数的SQQL:C/EXEEC SSQLC+ UPPDATTE PPFFHHS SSET FHSS01=0 WHHEREE FHHS022=11C/ENDD-EXXEC2、动态游游标C* C* 定义义动态SSQL C* C/EXEEC SSQL C+ PRREPAARE W#SSQL FROOM :A C/ENDD-EXXEC C* C* C* 执行行动态SQQL,结结果保存存到游标标C1 中 C* C/EXEEC SSQL DECCLARRE CC1 CCURSSOR FORR W#SQLL C/ENDD-EXXEC C* C* C* C* 打开开游标C1 C* C/

24、EXEEC SSQL C+ OPPEN C1 C/ENDD-EXXEC C* C* C* 取数数据 C* C* SQQLCOOD DDOUNNE *ZERRO C* C/EXEEC SSQL C+ FEETCHH C11 INNTO :W#FLDD1, C+ :WW#FLLD2, C+ :WW#FLLD3 C/ENDD-EXXEC C* C* ENNDDOO C* C* C* 关闭闭游标C1 C* C/EXEEC SSQL C+ CLLOSEE C11 C/ENDD-EXXEC 8.3 SSAVFF,备份与恢恢复SAVF,全全称SAAVE FILLE,存存储文件。可可以将SSAVFF 视为为一

25、个存存储容器,它它能够将指定定的库,或指指定的数数据文件件,或源源代码保存在在其中,有有点类似于UNNIX 中的TAAR。SAVF 只用于于备份与恢恢复。虽然通常常这些事情情是系统统管理员做的,但但是如果果环境许可的情况下,开开发人员能了解解这些命令令,自行行做做备备份,就就可以更更好地对对程序进行测试、保保护源码。当然,在在使用RRESTTOREE 命令令时,一定定要谨慎谨慎再谨慎,千千万不能能追求操操作速度度,切记切记。1. 建立立SAVVF要使用SAAVF,首首先我们们当然需需要建立立一个SSAVFF。如已已有自己己的SAAVF,可可跳过此步。建立SAVVF 的的命令是是:CRTSAAV

26、F FILLE(库名/SAAVF 名)如果建立成成功,就就会在指指定库中,生生成一个个空的SSAVFF。2. 清空空SAVVF使用SAVVF 前前,必须须保证SAVVF 是是空的。SAVF 不能追加内容。新生成的SAVF 一定的空的,不需需要特别别处理;如果是已存存在的SSAVFF,需要要使用CCLRSSAVFF 的命命令,确确保清空空SAVVFCLRSAAVF FILLE(库名/SAAVF 名)3. 将指指定的库库备份到到SAVVF 中中备份库,使使用下列列命令来来进行备份SAVLIIB LLIB(要备份的库名) DDEV(*SAAVF) SAAVF(SAVVF 所所在库名/SAAVF 名)

27、ACCPTTH(*YESS)ACCPTTH(*YESS),表表示备份时,备份存储路径。也也就是对对应于数数据文件件,将其其逻辑文件件的相关信息息也备份下来来,会增增加备份时间与备份空间;但恢恢复时,不不需要对对逻辑文文件重新新建立索引,可可以省很很多时间间。所以以在备份数据据文件建建议加上这个参数数。当然然,如果果是备份源代代码,就不需需要这个参数数了。4. 恢复复已备份的库RSTLIIB SSAVLLIB(备份的库名)DEEV(*SAVVF) SAVVF(SAVVF 所所在的库库/SAAVF 名)RSTLIIB(恢恢复的库名)RSTLIIB 这这个参数数,表示示恢复的库名,其其默认值值等于“

28、备份的库名”。也也就是说说,如果果我将FHSSLIBB 整个个库备份下下来,再再使用RRSTLLIB 恢复,如果果不更改改RSTTLIBB 中的的值,那么将直接将FHHSLIIB 整整个都覆覆盖恢复复;而如如果指定定RSTTLIBB 的值为OTTHERRLIBB,那么将么把备份的FHSSLIBB 的内内容,覆覆盖恢复复到指定定的OTTHERRLIBB 库中。5. 将指指定的目目标备份到到SAVVF 中中SAVOBBJ OOBJ(目标名) LLIB(目标所在的的库) DDEV(*SAAVF) SAAVF(SAVVF 所所在的库库/SAVFF 名)一次可以备备份多个个目标。如果是备份份源码,那么O

29、BJJ 就表表示源码码所在的的SRCCFILLE,MEMMBERR 项就是源源码名。可以使用FF4 键键,来备份更多多的目标标,或更更多的源源码。6. 恢复复目标RSTOBBJ OOBJ(*ALLL) SAVVLIBB(目标所在库) DDEV(*SAAVF) SAAVF(SAVVF 所所在库名/SAAVF 名)RSTLIIB( 恢复的库名)与RSTLLIB 类似。当当然,OOBJ 选项使用用*ALLL,表表示恢复复SAVVF 中中备份的所所有的目目标,也可以指定定只恢复复单个/多个目目标。8.4 菜菜单-MMENUU 如果有例子子的话,做菜菜单其实也不复杂杂。我对菜单做得也也不多,感感觉对于一

30、一般开发发人员来说,使使用频率不是是太高,还是简单说一下吧随便找一个个已存在在的菜单单,应该是包包含DDDS 与与CMDD 这两种TYPPE,COPPY 一一下;然后用177,或199 进入DDSS。用19 进进入时,可以以像编辑辑报表一一样,对菜单进行编辑;用17 进进入时,在“Worrk wwithh meenu imaage andd coommaandss”选项中选择“Y”,然然后用F10 可以看看到自行行定义的每条输入项对应应要运行行的程序序名,修修改之;用17 进进入后,再再退出时时,系统会自动提示编译译菜单。成功之后,查看属性为“CMD”的源,会看到里面也有自定义的输入项对应的要

31、运行程序名名。GO 菜单单名,就就可以进进入生成成的菜单单。8.5 实实用命令令WRKACCTJOOB这个使用的的频率应该是很很高的吧吧,在这这里只提提一个用用法:CCodiing 的时候断线异常退出时,再再登录之后,用用2 进入刚才编辑的程程序,会会报错“正正在被使使用”。除除了等一一会,一直等到它它自动退出之之外,还还可以用用WRKKACTTJOBB + 10,来来查找刚才自己己的那个个进程(显示出来来的命令令应该是STRRSEUU),然然后把它它KILLL 掉掉就行了了。DSPFDDDSPFDD + PF 名,查看文件件的信息息,包括括文件的的MEMMBERR 数,总记记录数,被被删除的

32、记录数,CCCSIDD 等等等。DSPFDD + LF 名,查看逻辑文件件的键值值,结合DSPPDBRR,可以以找出一一个PFF 文件件对应的所有LLF 文文件的键键值。DSPFDD + 库名+ *MBRRLISST,可可以看到到该库之下下所有的的文件名名。这个命令可可以使用用*OUUTFIILE,将将输出变成一个个文件。对于LF 文件,TTYPEE 项选选择“*ACCCPTTH”,可可以看到到该LF 文件的的键值。如如果把输输入设定为OOUTFFILEE,那么每每条记录指明明了一个个键值字段段。TYPE 项选择择“*SEELECCT”,可可以把这这个LF 文件的的筛选条件件列出来来。灵活运用

33、此此命令,将将会是很很多自行行编写的工工具的基基础之一。DSPFFFD注意,和上上面的命命令相差差一个“F”,该命令表示查看PF 文件的字段信息。比如该PF 文件件共有多多少个字字段,每每个字段段的类型如何何。与DSPFFD 相相似,DDSPFFFD 也可以以使用*OUTTFILLE,将将输出变成一个个文件。每条记录标识一个个字段。同同理,灵灵活运用用,也是是众多自自行编写工具具的基础础。MRGSRRC比较两个程程序的差差异。按按照A、B、A 的顺序,MRRGSRRC 时时,A 程序序在上面面,B 程序在下面,白白色的地地方,即即表示两两个程序序的差异异。F13 表表示接受受当前差差异,FF1

34、7 表示接接受所有有差异,F16 表示继续查找下一处差异。在接受差异异时,表示示按照BB 程序序,更改改A 程序序。(即B 程序序不变)把SPLFF 变成MEMMBERR(源文文件)必须知道SSPLFF 名,以以及生成成SPLLF 的的JOBB、USRR、NUMMBERR 名CRTSRRCPFF FIILE(库名/SRRCPFF) RRCDLLEN(2122) IIGCDDTA(*YEES)CHGPFF FIILE(库名/SRRCPFF) CCCSIID(9935)CRTPFF FIILE(库名/PFF) RRCDLLEN(2000) IIGCDDTA(*YEES)CPYSPPLF FILLE

35、(SSPLFF 名) TTOFIILE(库名/PFF) +JOB(NNUMBBER 名 / USEER 名名 / JOBB 名) SSPLNNBR(*LAAST)CPYF FROOMFIILE(库名/PFF) TTOFIILE(库名/SRRCPFF) +TOMBRR(MBBR00001) MBBROPPT(*ADDD) FFMTOOPT(*CVVTSRRC)最后,SRRCPFF 下的的MBRR0011 就是是SPLLF 转转成的MEEMBEER当然,做为为中间转换换的临时文件件,PFF 文件件会保留留SPLLF 的的信息。把MSGFF 变成SPLLFCHGSYYSLIIBL LIBB(QSSY

36、S229899)DSPMSSGD RANNGE(*FIIRSTT *LLASTT) MMSGFF(MSSGF 所在库名/MSSGF 名) +DETAIIL(*BASSIC) OUUTPUUT(*PRIINT)CHGSYYSLIIBL LIBB(QSSYS229899) OOPTIION(*REEMOVVE)这个命令,再再结合上面面的“把把SPLLF 变变成MEMMBERR”,就就可以把把MSGGF 搞搞成MEMBEER,然然后再FFTP 到WINNDOWWS 上上,就可可以很方方便地查查找已定定义的MSGG 信息息了。不过必须要要有权限执行CHGGSYSSLIBBL 这这个命令令。DSPOBB

37、JD根据程序名名,查找编译时时源代码所在的的库名、SRRCFIILE 名。DETAIIL 参参数用“*SERVICE”,OBJTYPE 选项用“*PGM”不过好象RRPGLLE 的的程序用用这个命令令查不出来来,要用用DSPPPGMM 命令令。DSPPGGM根据目标DSPPGGM + RPPGLEE 程序序名,参参数用“*MODULE”,然后再选择5,就可以看到编译时RPGGLE 程序时,源代代码所在的的库名,SRRCFIILE 名。DSPDBBR根据物理文文件查其对应的所所有逻辑辑文件DSPPGGMREEF查找程序与与PF、LF 的关系。PGM 参参数用“*ALL”,OUTPUT 参数用“*

38、OUTFILE”,OBJTYPE 参数用“*ALL”,然后执行,再再输入输出文件件名与所所在库就可以以了。然然之后,就就可以SSQL 在这个生成成的文件中查找找(生成成的过程可能能会有点点慢,要要耐心)。在生成的文文件中,字字段WHHRFNNM,表表示记录录格式名名。举例来说,如果果物理文文件更改过,那么么物理文文件与逻逻辑文件件就都重重新编译译过了,所所以它们们对应的的的所有有的程序序都要重新编译,通通常物理理文件与与逻辑文件件使用相相同的记记录格式式名(当当然,如如果不同同就算了了)这时就需要要按记录录格式名名来查找。比比如SEELECCT * FRROM 刚生成的的文件WWHERREWH

39、RFNNM = “记录格式式名”,找找出所有有涉及到这个记录格式式名的程程序。在生成的文文件中,字字段WHHFNAAM,表表示文件件名,包包括物理理文件与与逻辑文件件。比如如说当我们只只修改了了某个逻逻辑文件件时,那么当然是是只需要要重新编编译与该逻辑辑文件有有关的程序,也就是是说只根据据文件名名来查找就足足够了。RTVCLLSRCC如果编译CCL 程程序时,不是是刻意带带*NOONE 参数,那那么一般来来说CL 程序都都可以使使用这个命令令来反编编译。具具体用途途试试便知知RGZPFFM重整文件,即即回收已已删除记录的空空间。不过这这个命令令我没实实际用过。WRKMSSGQ QSYYSOPP

40、R显示错误信信息CHGCMMGDFFT更改某些命命令的默默认参数,如如更改CCRTPPF 的的WAIITRCCD 参参数:CHGCMMDDFFT CCMD(QSYYS/CCRTPPF) NEWWDFTT(WWAITTRCDD(*IIMMEED)SBMJOOB将任务提交交后台处处理。普通程序的的流程中中,如果果A 程序序CALLL 了了B 程序序,那么么A 程序序必须等待B 程序运运行结束之后后,才会会继续执执行CALLL 之之后的语语句;如果是使用用SBMMJOBB 的话,那么A 程序序就将BB 程序序提交到到后台去去运行,不不等待BB程序结行完完毕,直接接继续向下下运行。SBMJOOB 命命

41、令仅仅仅只是表表示将任任务提交给后台,所所以此句句运行完完毕,也仅表示后后台已开始运运行,并并不表示示运行的的程序结结束。Submiit JJob (SBBMJOOB)Type chooicees, preess Entter.Commaand to runn . . . . . . . . .Job nnamee . . . . . . . . . . . . *JJOBDD Naame, *JJOBDDJob ddesccripptioon . . . . . . . . *USSRPRRF NNamee, *USRRPRFFLibraary . . . . . . . . . . . N

42、aame, *LLIBLL, *CURRLIBBJob qqueuue . . . . . . . . . . . *JOOBD Namme, *JOOBDLibraary . . . . . . . . . . . Naame, *LLIBLL, *CURRLIBB如上所示,第第一行CCommmandd too ruun 处处,填写写需要提提交后台台运行的的命令语语句(通通常是CCALLL某个程序);Job nnamee 表示示的,是是显示在屏屏幕上的的,运行行的程序序的名字字,可以以随便写写,只是是用来标标识用的;Job ddesccripptioon, 填写对对应的JOBBD(如如果想将

43、将程序提提交到指指定的子子系统下,那那么此处填写子系统统对应的的JOBBD,Jobb quueuee 处填写子子系统对对应的JOBBQ),如如果不填填,即表表示默认认为当前用户户的JOBBD,JOBBQ8.6 关关于代码风风格的几几点想法法1、 绝大大多数情情况下,不不做硬性性要求,一一切都以以维护时时程序的的易读性为主导。2、 一定定要在程程序最开开始,简要说明程序序实现的功功能,输输入输出参数数,这个必须的。3、 临时时变量的的命名:这个应该算算是最具具有可规规范性的的了。总总之最好好就是一一望之下下,就知知道这个临时变量是代表表什么意思。变变量名的的长度可以以不做局局限,当当然最好好不要

44、太太长。通常常项目开发对此都都会有明明文或潜潜在的规规范,多多参照即即可。4、 定义义临时变变量的位位置:在首次使用用该临时时变量前前定义,同时加汉字注释,简单说说明这个临时变变量在什什么情况下,应该赋什么样的值。(当然了,如果是多个用途相似的临时变量,可以用一行注释释来搞定定,不强强求每个变量都要要有一行行注释)见过的大部部分规范里面面,都是是统一在程程序开始处定义一大堆堆临时变变量,规范的同时,总觉觉得用起起来不够够方便,比比如说不知道道这个临时变变量什么时时候使用用,代表表什么意思,怎怎么使用,该该怎么赋值值等等。5、 子过过程的使使用:主程序最好好只写主主流程,将将具体处处理交给各子过程;同同时在调用子过程之前前,加注释,说说明这个子过程的处理功能能。而子子过程代码最开始,也也要有这这个子过程的功能说明,最最好详细

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理手册

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁