Cobol 如何修复重复?
该程序将读取SEQ文件,并通过不同的验证获取数据,如果数据不符合其中一个验证,则错误消息将移至FIELD-NAME 处理完所有数据后,所有事务都将用于创建RPT文件 问题:在查看RPT文件时,除了标题行1之外,所有内容都是重复的。另一个奇怪的问题是,错误字段名/错误字段值在传递条目后不断重复相同的错误 如果您运行SEQ还提供的代码,您将看到数据当前是如何打印的。下面是一个链接,指向第一页数据的外观 序号: 代码:Cobol 如何修复重复?,cobol,Cobol,该程序将读取SEQ文件,并通过不同的验证获取数据,如果数据不符合其中一个验证,则错误消息将移至FIELD-NAME 处理完所有数据后,所有事务都将用于创建RPT文件 问题:在查看RPT文件时,除了标题行1之外,所有内容都是重复的。另一个奇怪的问题是,错误字段名/错误字段值在传递条目后不断重复相同的错误 如果您运行SEQ还提供的代码,您将看到数据当前是如何打印的。下面是一个链接,指向第一页数据的外观 序号: 代码: 如果您有任何问题,请告诉我。重复输出出现在以下代码中 IF RECORDS
如果您有任何问题,请告诉我。重复输出出现在以下代码中
IF RECORDS-ERROR-SWITCH = 'NO'
ADD 1 TO TOTAL-GOOD-COUNT
ADD 1 TO TOTAL-GOOD-QUANTITY
WRITE INVENTORY-TRANS-RECORD-OUT-2
MOVE DETAIL-LINE TO INVENTORY-TRANS-RECORD-OUT-2
WRITE INVENTORY-TRANS-RECORD-OUT-2
第一个WRITE
语句打印前一行的副本。第二个WRITE
语句打印新行,在下一个循环中再次打印。删除第一条WRITE
语句
我注意到的其他问题有:
- 无效文字
330-VALIDATE-CHARGE-NUMBER. IF CHARGE-NUMBER-IN IS EQUAL TO '' 340-VALIDATE-INITIALS. IF ((INITIALS-1-IN IS EQUAL TO '') OR (INITIALS-2-IN IS EQUAL TO ''))
'
应该是'
- 无效的数字比较
310-VALIDATE-QUANTITY. IF QUANTITY-9-IN IS GREATER THAN '20,000'
QUANTITY-9-IN
定义为PIC 9(5)
;但是,数据包含前导空格,'20000'
对于数字比较无效。适当的数值比较可以是:
IF FUNCTION NUMVAL (QUANTITY-IN) IS GREATER THAN 20000
以下内容未作进一步调查。
- 打印间距与所需输出不匹配
- 总计打印不正确
WS-QUANTITY
定义为PIC 9V999
。它应该是9999
或9(4)
总计的数据项没有增加
500-
、510-
、520-
和530-
段落中的MOVE
语句覆盖固定文本。除了第一条注释外,您可能希望使用WRITE INVENTORY-TRANS-RECORD-OUT-2 FROM-DETAIL-LINE
使打印位置“完全清晰”。
310-VALIDATE-QUANTITY.
IF QUANTITY-9-IN IS GREATER THAN '20,000'
IF FUNCTION NUMVAL (QUANTITY-IN) IS GREATER THAN 20000