Chinaunix

标题: 不太了解RPG中H行的含义? [打印本页]

作者: www607    时间: 2006-03-10 15:56
标题: 不太了解RPG中H行的含义?
每次写程序的时候,有时候会看见别人的程序第一行是这样的:H            Y/
在程序结束的时候,有 /EJECT,或者有时候是/COPY,不知道具体有什么用处含义?
请大家指教指教
作者: wangzhizhou    时间: 2006-03-10 22:23
H            Y/
定义日期格式的
/EJECT是和打印有关的好像
/COPY不太清楚
上边是个人看法,不一定对
作者: frmax    时间: 2006-03-10 22:25
RPG编码是在一些规范表的格式中写的,每种都有特定的含义。
共六中类型:
H. 控制 F. 文件描述 D. 定义 I. 输入 C. 计算 D. 输出
作者: danli    时间: 2006-03-11 08:26
标题: /copy
/copy 是在编译作复制的功能(即在编译时将"/copy 后指定的代码复制当前程式的当前位后编译,大致相当于C语言当中的#include)
作者: danli    时间: 2006-03-11 08:28
标题: /copy
/copy 是在编译作复制的功能(即在编译时将"/copy 后指定的源代码文件复制当前程式的当前位置后再编译,大致相当于C语言当中的#include)
作者: aliceliu    时间: 2006-03-11 12:21
H行一般用来设定在程式中使用的日期的格式。和一些ISO的标准等。一般用的不是很复杂。可能在银行业用得广些。请大家多多补充
作者: wildfish    时间: 2006-03-11 12:31
我个人见解,不承担错误:)
H用法,目前所知的
1。 HNOMAIN 表示module里面没有一个主模块,module里面可以写多个function
2。 HDATFMT(*ISO)用来表示说整个 program里面的日期变量都是ISO格式的

I表的/COPY指令 通常用于拷贝一些常用的定义
比如大多数program都需要使用到的一些函数的声明,结构体等等
假如,我们有一个函数或者模块需要声明如下
   d sendEmail       pr                  extpgm('EAG20C164')
     d  Account#                      7

假设这个sendEmail每个地方都得用到
那么,我们就可以把它加到一个通用的 source
然后,每次只需要 I/Copy library,sourceFile


/EJECT一直没有用过,不是很了解
作者: aliceliu    时间: 2006-03-11 23:29
标题: H-spec in RPGLE
H行用来制定创建和运行程序的一些信息。
也可以在crtbndrpg or crtrpgmod命令中直接指定相关的keyword参数
常用的一些有这些:
ALWNULL(*NO | *INPUTONLY | *USRCTL)
BNDDIR(’binding-directory-name’ {:’binding-directoryname’...})
DFTACTGRP(*YES | *NO)
DATFMT(fmt{separator})
NOMAIN
作者: xf001    时间: 2006-03-12 15:40
/eject 强制splf换页
作者: Inyan    时间: 2006-03-15 09:34
/COPY如楼上几位所说,
但我做过的系统是在D行使用。
O行也见到过,定义内部打印文件。
不记得I行是定义什么的了……
作者: xuguopeng    时间: 2006-03-15 11:10
RPGIII是用I表  到RPGIV就已经不用I表了 都用D表了
作者: metmay    时间: 2006-03-16 09:17
原帖由 wangzhizhou 于 2006-3-10 22:23 发表
H            Y/
定义日期格式的
/EJECT是和打印有关的好像
/COPY不太清楚
上边是个人看法,不一定对


/COPY 就是把 /COPY后的内容拷贝到当前源文件中
比方说/COPY VLIB/QSRC,PARM0

就是把VLIB下QSRC中的PARM0拷贝到当前源文件
作者: metmay    时间: 2006-03-16 09:20
原帖由 metmay 于 2006-3-16 09:17 发表


/COPY 就是把 /COPY后的内容拷贝到当前源文件中
比方说/COPY VLIB/QSRC,PARM0

就是把VLIB下QSRC中的PARM0拷贝到当前源文件


里面是D表或C表,或其他什么表,取决于PARM0中的内容
所以/COPY不要写错位置。
如果/COPY后面的行已经是D表,而PARM0中的内容却是C表,则编译通不过,因为D表必须在C表之前
作者: wangzhizhou    时间: 2006-03-16 10:04
楼上各位前辈说的俺好多都不知道
现在还不太明白~~
学习中
作者: shanda928161    时间: 2006-03-16 10:43
我有两个文件,CPYTEST和CPYRST
CPYTEST代码:
C                   MOVE      '222'         TEST              3           
C                                                                        
C     TEST          DSPLY                                                
C                   SETON                                            LR   
C                   RETURN                                                

*************** End of data *******************************************

CPYRST代码:

C/COPY JIALIB/CPYSRC,CPYTEST                                                                        060316
C                   SETON                                            LR                             060316
C                   RETURN                                                                          060316
*************** End of data *******************************************
它的错误信息为找不到文件
请问为什么?谢谢!
作者: xuguopeng    时间: 2006-03-16 10:47
你需要把JIALIB加到你的 LIBL中,可以使用ADDLIBLE JIALIB
作者: shanda928161    时间: 2006-03-16 10:51
原帖由 xuguopeng 于 2006-3-16 10:47 发表
你需要把JIALIB加到你的 LIBL中,可以使用ADDLIBLE JIALIB

我加过了,还是这样的
作者: shanda928161    时间: 2006-03-16 10:54
原帖由 shanda928161 于 2006-3-16 10:43 发表
我有两个文件,CPYTEST和CPYRST
CPYTEST代码:
C                   MOVE      '222'         TEST              3           
C                                                                         ...





具体错误如下:
*RNF0273 40 a      000100  Compiler not able to open the /COPY or /INCLUDE file;
                           directive ignored.
作者: hmily1898    时间: 2006-03-17 12:59
/TITLE又表示的什么呢???
请求解答!!!
作者: aliceliu    时间: 2006-03-17 20:09
/TITLE   没有用过这个。不过知道是表示写在程式中一个标题之类的。
作者: l.rover    时间: 2006-03-19 12:05
原帖由 shanda928161 于 2006-3-16 10:54 发表





具体错误如下:
*RNF0273 40 a      000100  Compiler not able to open the /COPY or /INCLUDE file;
                           directive ignored.



你试着把类型从 RPG 改为 RPT 再编译试一下。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2