RPGLE中如何按KEY FIELD DATE做LOOP记录?

How to do LOOP record by KEY FIELD DATE in RPGLE?

我无法获得完整输出。

假设输出需要如下所示:

这是我的物理文件:

我在物理文件中有三个字段,它们是:

我的输出是这样的:

我的输出仅显示 6 月 1 日的记录,而不是 5 月 31 日和 6 月 1 日的记录。我应该怎么做才能获得我想要的确切输出?请帮我。提前致谢

内部循环运行到 %eof。然后你写入子文件。写入子文件后的 reade 将 return %eof 因为进入文件的光标尚未重置。

            write sfl01
    exgdat  reade curexg

使用SETGT然后READ读取到下一组货币汇率记录的EXGDAT

            write sfl01
    exgdat  setgt curexg
            read  curexg

要调试未读取预期记录的问题,请尝试将每次读取的结果写入打印文件。这样你就可以在程序运行后查看一些东西。可能有助于理解阅读的内容和原因。

FQSYSPRT   o    f  132        printer OflInd(*inOf)    

d lineData        s            132a     

      if          *inof = '1' ;                          
      except      newPage ;                              
      endif ;                                            
      lineData    = %eof + ' ' + exgcod + ' ' + 
                    %editc(exgrat:'J') +
                    ' ' + %char(exgdat:*iso) ;      
      except      detail ;                               

OQsysprt   E            NewPage           1            
O                       LineData           132         
                                                       
O          E            Detail      1                  
O                       LineData           132