我是 COBOL(和 OpenCOBOL)的新手,我的问题是关于 OpenCOBOL 中的“复杂 odo”(发生...取决于)。
我在以下代码中使用了 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 子句
上面的错误消息是从我发现此注释的 field.c 发出的 /* 包含 OCCURS DEPENDING 子句的数据项不应从属于具有 OCCURS 子句的数据项 */
有没有办法让 OpenCOBOL 支持这种“复杂的 odo”?
根据 IBM 的 COBOL 编程指南的附录,我上面的代码片段,“OCCURS DEPENDING”嵌套在更高级别的“OCCURS”子句下,似乎是一个定义明确的“complex-odo”。
谢谢,
比利·荣