OpenCOBOL Complex ODO(OCCURS DEPENDING ON)

我是COBOL(和OpenCOBOL)的新手,我的问题是关于OpenCOBOL中的“complex-odo”(OCCURS ... DEPENDING ON)。 我在下面的代码中使用了1.0 ......
01  W-PTDO-PROC-TBL.
       05  W-PTDO-PROC-ENTRY OCCURS 0 TO 450 TIMES
             DEPENDING ON W-PTDO-PROC-MAX
             INDEXED BY W-PTDO-PROC-INDX.
           10 W-PTDO-PROC-APC        PIC X(05).
           10 W-PTDO-PROC-LNSUB      PIC S9(07)   COMP-3.
           10 W-PTDO-PROC-KEY.
               15 W-PTDO-PROC-WA-OFFSET  PIC 9(08)V99.
               15 W-PTDO-PROC-UNITS      PIC 9(09).
           10 W-PTDO-PROC-DEVICE-CNT PIC 9(03).
           10 W-PTDO-PROC-DARRAY OCCURS 0 TO 450 TIMES
                DEPENDING ON W-PTDO-DARRAY-MAX
                INDEXED BY W-PTDO-DARRAY-INDX.
               15  W-PTDO-PROC-DHCPCS PIC X(05).
           10 W-PTDO-DARRAY-SIZE     PIC 9(03).
           10 W-PTDO-PROC-TOT-DCHRGS PIC 9(10)V99.
           10 W-PTDO-PROC-TOT-DUNITS PIC 9(05).
           10 W-PTDO-PROC-USED       PIC X(01).
...... 和cobc返回此错误消息: 错误:由于'W-PTDO-PROC-DARRAY','W-PTDO-PROC-ENTRY'不能有OCCURS条款 以上错误msg是从field.c发出的,我发现了这条评论 / *包含OCCURS DEPENDING子句的数据项不应从属于具有OCCURS子句的数据项* / 反正有没有让OpenCOBOL支持这个“复杂的odo”? 根据IBM COBOL编程指南的附录,我上面的代码片段,“OCCURS DEPENDING”嵌套在更高级别的“OCCURS”子句下,似乎是一个明确定义的“复杂odo”。 谢谢, 比利荣     
已邀请:
你不能在另一个数组中有一个可变长度数组(OCCURS DEPENDING ON)! 所需的处理过于复杂。如果允许内部数组项的长度变化,则计算外部数组的第N个条目的开始的唯一可能方式是顺序访问从1到N的每个内部成员并使用DEPENDING ON计数来计算其长度,因此下一个数组条目的开始。     

要回复问题请先登录注册