R-P-1-2(8)

2019-09-01 16:12

运行时的考虑 DFTACTGRP(*YES) ACTGRP(QILE) STRSEQ(*NEX)

指出该程序是否总在OPM默认活动组中运行 指出程序运行的活动组 指出使用的排序顺序表

与SRTSEQ并用来指定排序顺序的语言标识 指定发生数字溢出时采取的动作

LANGID(*JOBRUN) TRUNCNBR(*YES)

参见附录C,1.3中的“建立命令”,其中有CRTBNDRPG的语法图解和参数描述。

2.2.1.1 建立一个与OPM兼容的程序目标

在此例子中使用CRTBNDRPG命令,由源程序EMPRPT,如2.1.2节中的图15所示,建立一个与OPM兼容程序。

1、要建立目标,键入

CRTBNDRPG PGM(MYLIB/EMPRPT) SRCFILE(MYLIB/QRPGLESRC)

TEXT(‘ILE RPG/400 program’) DFTACTRP(*YES)。

CRTBNDRPG命令在库MYLIB中建立程序EMPRPT,它将在默认活动组中运行。这时产生编译清单。

注意:DFTACTGRP(*YES)提供,OPM兼容性,有了这项就不允许你输入ACTGRP和BNDDIR的参数值,另外,如果源程序中包含CALLB操作码,那么将会出错误信息且编译结束。

2.2.1.2 建立用于源语句调试的程序

在此例子中建立可以用源语句调试程序EMPRPT。CRTBNDRPG和CRTRPGMOD的DBGVIEW参数决定了在编译时产生何种调试数据。该参数提供了六种选项:

*STMT—允许用编译清单在语句处显示变量值,设置断点,此时,不显示源语句。 *SOURCE—建立与输入的源语句相同的显示。

*COPY—建一个源语句显示和包括带有/COPY成员的源语句的显示。 *LIST—建立与编译清单相似的显示。 *ALL—建立以上所有类型的显示。 *NONE—不产生调试数据。

2、键入以下CL命令中的一个来看生成的编译清单。

DSPJOB并选择选项4(显示假脱机文件) WRKJOB WRKOUTQ队列名 WRKSPLF

EMPRPT的源语句如2.1.2节中的图15所示。

1、要建立目标,键入:

CRTBNDRPG PGM(MYLIB/EMPRPT)DBGVIEW(*SOURCE)这个程序以它的源成员EMPRPT

为名建立在库MYLIB中。注意在默认方式下,将会以参数DFTACTGRP(*YES)建立,这个程序目标可以用源语句视图调试。

* *

* Display Module Source *

* *

* Program: EMPRPT Library: MYLIB Module: EMPRPT *

* 1

F**************************************************************** * * 2 F* 模 块 名: EMPRPT

*

PRINT

(打印文件)

*

*

*

*

* 3 F* 有关文件: EMPMST(物理文件) * 4 F*

2、要调试程序键入:

STRDBG EMPRPT

图18显示了键入以上命令后的屏幕显示。

* 5 F* 说 明:这个文件打印EMPMST中的雇员信息 * 6 F* * 7

F**************************************************************** *

* 8 FQSYSPRT O F 80 PRINTER *

* 9 FEMPMST IP E K DISK *

* 10 *

* 11 D TYPE S 8 *

* 12 *

* 13 IEMPREC 01 *

* 14 *

* 15 C IF ETYPE = 'M' *

* More... *

* Debug . . . *

* *

* F3=End program F6=Add/Clear breakpoint F10=Step F11=Display variable *

* F12=Resume F13=Work with module breakpoints F24=More keys *

* *

* *

图18 EMPRPT的显示模块源语句屏幕

在这个屏幕上(显示模块源语句屏幕)你可以输入调试命令来显示或修改字段值,设置断点来控制调试程序流程。

关于调试的详细信息,参见第10章3.1节中的“程序调试”。

2.2.1.3 建立一个使用静态连接的程序

在此例子中使用CRTBNDRPG命令建立一个程序COMPUTE,在程序建立时,连接一个服务程序。假设要把程序COMPUTE与购买来的高级计算的服务程序相连接。要连接源程序的目录名为MATH,这个目录包含一个服务程序的名字,该服务程序中包括几个组成它的过程。要建立目标,键入:

CRTBNDRPG PGM(MYLIB/COMPUTE)

DFTACTGRP(*NO) ACTGRP(GRP1) BNDDIR(MATH)

在程序建立时,源程序将与在连接目录MATH中指定的服务程序相连接。这意味着调用服务程序中的过程,将比动态调用要省时间。

当调用程序时,将在活动组GRP1中运行,CRTBNDRPG的ACTGRP默认值为QILE。但是,建议在唯一的活动组中运行你的应用程序,以确保相关联的资源被完全保护。

注意:为了能输入ACTGRP和BNDDIR的参数值,必须把参数DFTACTGRP的值设置为*NO。 关于服务程序的详细信息,参见第七章2.4节“建立服务程序”。

2.2.2 使用编译清单

本部分讨论了如何得到清单,如何用它得到帮助来处理下面问题:

修正编译错误 修正运行时错误 为维护工作准备文档

参见附录D,附录1.4节中的“编译清单”,其中有清单各部分的信息和完整的样本清单。

2.2.2.1 获取编译清单

要获得编译清单应在CRTBNDRPG命令或CRTRPGMOD命令中指定OUTPUT(*PRINT)。(这是它们的默认值),如果指定了OUTPUT(*NONE)将不产生清单。 指定OUTPUT(*PRINT)将产生至少包含以下部分的编译清单: 序(命令选项总计) 源清单,包括:

—联机诊断信息

—匹配字段表(如果使用了有匹配字段的RPG周期的话)

附加的诊断信息 输出缓冲区中的字段位置 /COPY成员表 编译时数据,包括:

—交替对照顺序记录和表或NLSS信息和表 —文件传输记录 —数组记录 —表记录 信息总计 最终总计

代码生成报告(只在有错误时出现)

连接报告(仅对CRTBNDRPG命令,只在有错误时出现)。如果在建立命令的OPTION参数中指定相应的值的话,那么编译清单会包括以下附加的信息。

*EXPDDS *SHOWCPY *EXPDDS *XREF *EXT

外部描述文件规范表(出现在清单的源语句部分) /COPY成员的源记录(出现在清单的源语句部分) 键字字段信息(自已一部分单元) 交叉引用清单(自已一部分单元) 外部引用清单(自已一部分单元) 二级信息文本(出现在信息总计部分)

*SECLUL

注意:对建立命令而言,除了*SECLUL以外,以上所有的值都是OPTION参数的默认值。不必修改OPTION参数,除非不想要某个清单部分或者想在清单中包括第二级文本。

2.2.2.1.1 剪裁编译清单

可以改制页标题或改制行距来剪裁编译清单。

改制页标题:页标题信息包括产品信息行和由/TITLE命令提供的标题。产品信息行包

括ILE RPG/400编译程序和库版权注意信息,成员,源程序所在库,模 块建立的日期和时间,还有清单的页数。

可以用/TITLE编译命令指定清单中标题。这条命令让你指定在每页编译清单顶部出现的内容。这条信息,要优先于通常页标题信息。如果该命令是源成员中的第一条记录,那么这条信息也会出现在序言部分。

也可以改变清单中页标题和其它信息中使用的日期分隔符,日期格式和时间分隔符。一般地,编译程序根据作业属性来决定这内容。要修改它们应使用修改作业(CHGJOB)命令,用这条命令可以:

选择以下日期分隔符之一:*SYSLVL,*BLAND,斜线(/),连接号(-),句点(.),或逗号(,)。

选择以下日期格式之一:*SYSLVL,*YMD,*MDY,*DMYAKG *JUL。

选择以下时间分隔符之一:*SYSLVL,*BLAND,冒号(:),逗号(,)或句点(.)。 这些值用在清单中出现时间和日期字段的地方。

改制行距:通常清单的每部分都从新的一页开始;清单的每一页都以产品信息开始(除

非源成员包含/TITLE命令)。这产品信息出现在第二行而标题出现在第一

行。

使用/EJECT和/SPACE编译命令可以控制编译清单的间隔和页码,/EJECT命令强制产生一个页中断,开始另一页。/SPACE命令控制清单的行距。关于这些命令的详细信息参见ILE RPG/400参考手册。

2.2.2.1.2 编译清单中的结构化操作缩进

如果源程序规范表中包括结构化操作码(例如DO-END或IF-ESLE-END),你可能希望在源程序清单中这些操作有缩进显示。INDENT可以让你指定是否显示缩进,并指定标记


R-P-1-2(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Music Radio经典老歌(1)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: