如何在RPG编译清单中加入结构化缩进格式

若ILE RPG的源程序中包含有结构化操作码(如DO...END,IF...ELSE...END),编译后不采用缩进格式显示,看起来非常不方便,本文主要描述如何在ILE RPG编译清单中加入结构化缩进格式。
如何在ILE RPG编译清单中实现结构化缩进格式呢?

1.在ILE RPG的H表中加入INDENT缩进关键字,INDENT的主要作用是在编译清单中加入缩进格式,缺省情况下INDENT为*NONE,不进行缩进显示。要进行缩进显示可以用INDENT('字符值“),例如:INDENT('| '),它的含义是用一个竖线和一个空格进行结构化缩进,如下图所示:

0001.00 H INDENT('| ')
0002.00 FDSPFILE1           CF E                                   WORKSTN
0003.00 FTESTPF               IF E                                   K DISK
0004.00 FPRTF                    O E                                  PRINTER
0005.00 DTODAYSDATE            S                                         D
0006.00 C                                     MOVE                        UDATE TODAYSDATE
0007.00 C                                     EXFMT                     DSPLY_FMT
0008.00 C                                     DOW                           NOT *IN03
0009.00 C                                     EVAL                        *IN99=*OFF
0010.00 C               VNDNBR           CHAIN                      TESTPF
0011.00 C                                     IF                            %FOUND(TESTPF)
0012.00 C                                     EXFMT                      DSPLYFMT
0013.00 C                                     IF                            *IN10
0014.00 C                                     WRITE                      VNADDFMT
0015.00 C                                     ENDIF
0016.00 C                                    ELSE
0017.00 C                                     EVAL                        *IN99=*ON
0018.00 C                                     ENDIF
0019.00 C
0020.00 C                                    EXFMT                       DSPLYFMT
0021.00 C                                    ENDDO
0022.00 C
0023.00 C                                   EVAL                         *INLR=*ON


2.编译ILE RPG源程序。
===> CRTBNDRPG PGM(LIBNAME/TEST) SRCFILE(LIBNAME/QRPGLESRC) SRCMBR(TEST) DFTACTGRP(*NO) INDENT('| ')

3.用命令dspsplf查看编译生成的SPOOL FILE,下图是SPOOL FILE的一个片段,这样用竖线和空格在ILE RPG编译清单中实现结构化缩进格式。

31 C                        MOVE                      UDATE                       TODAYSDATE
32 C                        EXFMT                   DSPLY_FMT
33 C                        DOW NOT                *IN03
34 C                       | EVAL                  *IN99=*OFF
35 C VNDNBR          | CHAIN                TESTPF
36 C                       | IF                      %FOUND(VENDOR_PF)
37 C                       | | EXFMT              DSPLYFMT
38 C                       | | IF                   *IN10
39 C                       | | | WRITE          VNADDFMT
40 C                       | | ENDIF
41 C                       | ELSE
42 C                       | | EVAL                *IN99=*ON
43 C                       | ENDIF
44 C                       |
45 C                       | EXFMT                  DSPLYFMT
46 C                        ENDDO

posted @ 2012-01-09 13:13  静海平心  阅读(346)  评论(0编辑  收藏  举报