免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5009 | 回复: 10
打印 上一主题 下一主题

rpg 3中E表常数数组是怎样赋值的呢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-16 11:52 |只看该作者 |倒序浏览
各位大大,
有一个程序中间
E表定义为:

0051.01      C*------------------------------------------------
0051.02      E                    ARR1    1  20 80
0051.03      E*                   ARR2      200 15
0051.04      I*
0051.05      C*------------------------------------------------


程序结束为:

0387.01 **   C
0387.02 THE DRAWING IS INVALID.
0387.13 THE DATE IS INVALID.
0387.14 THE FIELD CAN NOT BE BLANK.
0387.15 THE FIELD MUST BE BLANK.
0387.16 THE DRAWING NO.WAS CANCELED.
0388.00      C************************************************************


问题是我在整个程序中没有发现 arr1是怎么赋值进去的.怎么知道aRR1中存储的是什么呢.

[ 本帖最后由 sy_huang 于 2009-9-21 13:40 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-09-16 23:11 |只看该作者
自动赋值,内容应该就是你程序尾部看到的那些东西吧。

论坛徽章:
0
3 [报告]
发表于 2009-09-17 13:19 |只看该作者
ARR1是常量数组,内容是程序最下边的东西
在レコード上写的那个1,表示每行有一个元素

[ 本帖最后由 giggsone 于 2009-9-17 13:25 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-09-17 16:51 |只看该作者

多谢上面的兄弟 (I表 DS 和N30指示器怎么指)

多谢上面的兄弟,

0052.05      E                    ARR1    1  20 10
是不是代表 ARR1 中一行中有一个ELEMENT 共20个每个是10 LENGTH呢?

另只要是
** 开头
**结束中的所有字符就可以自动赋予上面两个数组呢?ARR1  & ARR2?
最好是有有关与RPG3方面的书籍.我现在有好多CODE看不懂.

0052.02      FVAPD03MFUF  E           K        DISK
0052.03      FZPAL01  IF  E           K        DISK
0052.04       *
0052.05      E                    ARR1    1  20 10
0052.06      E                    ARR2    1  20 40
0052.07      ISDS        SDS
0052.08      I                                     *STATUS  #ERROR
0052.09      I                                        1  10 PGMID
0052.10      I                                      244 253 WSID
0052.11      I                                      254 263 USER
0052.12      I            DS
0052.13      I                                        1   7 NEWID
0052.14      I                                        1   3 PREFIX
0052.15      I                                        4   70NUMBER



由于现在几乎找不到RPG3方面REFERENCE的书籍.我对I表也不不理解.不知道程序怎么调用 sds 中的 变量.  
能否解答下面另两个问题.还有就是能否帮忙解答下 面代码的 N30指示器的详细怎么运做的的.



  C           #DRWNO    CHAINVAPDH2R              30
  C*
  C  N30                MOVE 'C'       IFLAG
  C  N30                UPDATVAPDH2R
  C   30                WRITEVAPDH2R
  C*

论坛徽章:
0
5 [报告]
发表于 2009-09-17 19:54 |只看该作者
E数组有二种,一种是程序最后定义,不需要手动赋值
             另一种是需要手动赋值的

#DRWNO    CHAINVAPDH2R              30
如果 该记录在档案中存在,则30 OFF ,即N30
如果不存在,则30 ON,即30

不知道这样清楚吗?

论坛徽章:
0
6 [报告]
发表于 2009-09-18 08:20 |只看该作者

回复 #5 NINERI 的帖子

谢谢 nINERI!

---------------------------------------------------
E数组有二种,一种是程序最后定义,不需要手动赋值
             另一种是需要手动赋值的
---------------------------------------------------

能否举例说明两者有那些不同.即是怎么区分E数组的定义.

N30指示器我已明白,但是关于I表的定义又是怎样的?以及程序体是怎么调用的呢?

再次感谢NINERI ....请再次帮忙下!!!

论坛徽章:
0
7 [报告]
发表于 2009-09-18 11:40 |只看该作者
0052.05      E                    ARR1    1  20 10
是不是代表 ARR1 中一行中有一个ELEMENT 共20个每个是10 LENGTH呢?
这个是正解
‘1’的那个位置只要写上值了,就表示这个数组是常量数组,数组内容在程序的最下边。
程序开始,数组里就会自动有值

0052.05      E                    ARR1    1  20 10
0052.06      E                    ARR2    1  20 40
这个表示这两个数组都是常量数组,赋值是按照顺序来的,程序最下边开始前20行是ARR1的值,以后就是ARR2的值
你可以写个小程序看看结果,把1换成2或者别的试试,就明白了

论坛徽章:
0
8 [报告]
发表于 2009-09-18 11:47 |只看该作者
SDS是系统数据结构,通过设定不同的位置来截取不同的值

论坛徽章:
0
9 [报告]
发表于 2009-09-18 11:56 |只看该作者

回复 #7 giggsone 的帖子

谢谢, giggsone.

Arr1 & Arr2 如此定义,

0052.05      E                    ARR1    1  20 10
0052.06      E                    ARR2    1  20 40
按照你说的程序最下边开始前20行是ARR1的值,以后就是ARR2的值.那下边赋值中ARR1 AND ARR2中是什么值呢?望指点 !

0189.00 **
0190.00 VAPD003S-02
0191.00 VAPD003S-05
0191.01 **
0192.00 Record already inactive
0193.00 Revision To DCC is blank
0194.00 Date To DCC is blank
0195.00 Create User is blank
0196.00 Reserved Date is blank
0197.00 Invaild date entry for DCC date
0198.00 Invaild date entry for Creation date
****************** End of data ***************************************

[ 本帖最后由 sy_huang 于 2009-9-21 13:38 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2009-09-22 14:29 |只看该作者
ARR1的前两个元素是VAPD003S-0和VAPD003S-0,其余的元素是空

在下边是ARR2的前7个元素

那两个星号分开了这两个数组

[ 本帖最后由 giggsone 于 2009-9-22 14:31 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP