无法显示排序值,缺少值

时间:2014-07-03 18:42:19

标签: ibm-midrange cobol

所以目前我已经制作了一个cobol代码,它接收我的CustPF(物理文件),其中包含客户名称,号码,地址和信用额度等。 所以我想制作一份包含在我的CustPF中的记录,然后完成这个

 PERFORM UNTIL WS-ENDCHECK = 'Y'                      
    SORT SORT-CUSTPF ON ASCENDING KEY S-EMPNO         
                     ON ASCENDING KEY S-CUNAME        
    USING CUSTPF                                      
    OUTPUT PROCEDURE IS 0002-SORTING-FILE             

 MOVE 'Y' TO WS-ENDCHECK                              
 END-PERFORM.                                         

然后通过这样做来阅读

RETURN SORT-CUSTPF INTO WS-CUSTPF                     
   AT END                                             
     DISPLAY 'READING OF FILE ENDED'                  
     DISPLAY 'TOTAL DISPLAY HERE'                     
     MOVE 'Y' TO WS-END-READ                          
   NOT END                                            
     CONTINUE                                                    
   DISPLAY all the values here                                           

然后我的结果显示在最后

EMP NO: 000001      
CUSTOMER NAME: A    
ADDRESS: 34,ZZZZZZZ 
CREDIT LIMIT:   &   

我的信用额度如何显示为& ? 有时它只显示空白, - ,一个带有斜线的圆圈。

在我的FD中设置为

05 WS-CUCRLM                   PIC 9(9)V99. 

在我的SD中设置为

05 S-CUCRLM                   PIC 9(9)V99.

在我的custpf中,它的格式是这个

CUCRLM         9P 2       TEXT('CUST CREDIT LIMIT')  

任何想法如何使我的信用额度显示正常的数字? 我的信用限额示例如70000.00,8000.00,600.00等

2 个答案:

答案 0 :(得分:4)

您需要一个经过编辑的字段来获取逗号,浮动符号和小数点等内容。

看到你的代码累积了S-CUCRLM和WS-CUCRLM也可能会有所帮助,但实际上,我认为你需要一个定义如下的字段:

05 display-curlm  pic --9,999,999.00.

答案 1 :(得分:1)

输入文件可能存在问题。确保输入文件中没有有趣的字符,并且所有字段都与您的定义一致。在该特定字段的输入文件中是否有逗号,负值或小数?有没有什么共同的领域是有趣的人物(字符长度等)?

如果你已经排除了所有这些,那么在cobol here中使用数字数据的例子就很多了。

我希望这有帮助!