0

我正在尝试显示一些我正在读入表格的数据。但是,我不断收到错误消息:

IN-FUND-NBR 不是唯一定义的名称...预期参考修改规范,但发现“)”。

***编辑:好的,所以我找到了问题的根源。但是,我仍然不能访问IN-FUND-NBR它吗?我尝试了以下方法,但它不起作用:

DISPLAY "IN-FUND-NBR = " IN-FUND-NBR (MF-SALE-SUB) OF IN-MF-SALE

***结束编辑

我有以下记录定义如下:

 01  SALES-RECORD.                          
     05  IN-CITY-NAME           PIC X(20).  
     05  IN-CUSTOMER-NAME       PIC X(20).  
     05  IN-MF-SALE             OCCURS 4.   
         10  IN-FUND-NBR        PIC 9(2).   
         10  IN-PRICE-FLAG      PIC 9.      
         10  IN-PURCH-AMT       PIC 9(5)V99.

我正在尝试通过在段落中执行以下操作来提取 IN-FUND-NBR 的第一个实例:

 PERFORM                                          
   VARYING MF-SALE-SUB FROM 1 BY 1                
     UNTIL MF-SALE-SUB > 4                        

       DISPLAY "Fund Number: " IN-FUND-NBR(MF-SALE-SUB)

 END-PERFORM.
4

1 回答 1

0

在您的程序中,您已多次IN-FUND-NBR定义。其他定义可能在抄写本中,或者是您自己编码但没有意识到的东西。编译器丢弃对该字段的引用。

关于引用修改的第二条诊断消息是因为丢弃了对您的数据名称的引用,然后编译器遇到了左括号和您的下标。当您更正问题时,此消息将消失。

要么,确保数据名称是唯一的。或者,在不可能的情况下,您必须使用qualification. 您可以通过使用 IN 或 OF 并引用更高级别的数据名称来执行此操作。

从你所展示的:

DISPLAY "Fund Number: " IN-FUND-NBR OF SALES-RECORD (MF-SALE-SUB)

应该管用。

尽管您可以使用qualification它来解决问题,但许多人像我一样认为这完全是在浪费时间和耐心,而其他人,尤其是初学者,则认为它是混乱的根源。尽最大努力始终拥有唯一的数据名称。

于 2013-11-14T22:46:21.127 回答