如何检索PRTF中的当前行数

时间:2017-10-24 11:06:39

标签: data-structures ibm-midrange rpgle

我必须修改打印一些数据的程序。 现在的任务是编写一种在达到某个行号时如何开始新页面的新方法。由于在假脱机文件的末尾打印了一些常量数据,因此不能将它们与新页面分开。

目前的方法是增加一个计数器。但这是非常糟糕的方式,因为在打印条形码时,我不知道这个条形码有多大(多少行)。并且,我希望实现一种可以在所有程序上实现的方式,因此我不必自己测试并获得每个条形码的大小。

我知道有显示文件的数据结构告诉我光标位置。所以 - 据我所知 - 必须有可能与PRTF和当前行号相同。

有谁知道怎么做? 谢谢!

1 个答案:

答案 0 :(得分:2)

我会使用文件信息数据结构(INFDS)来获取您需要的信息。

 FQSYSPRT   O    F  132        PRINTER OFLIND(*INOF)   
 F                                     INFDS(OutputFDS)
 F                                     PRTCTL(PrtCtlDS)

 D*File Information Data Structure                                                          
 D OutputFDS       DS                                                                       
 D**Open Feedback Area                                                                      
 D  ROWS                 152    153I 0                                                      
 D  OVERFLOW             188    189I 0                                                      
 D                                                                                          
 D**Printer Feedback Area                                                                   
 D  CUR_LINE             367    368I 0                                      Current line num
 D  CUR_PAGE             369    372I 0                                      Current page cnt


 D*Printer Control Data Structure           
 D PrtCtlDS        DS                       
 D  pSpacing               1     12         
 D  pSpcBefore             1      3A        
 D  pSpcAfter              4      6A        
 D  pSkpBefore             7      9A        
 D  pSkpAfter             10     12A        
 D  pLineNbr              13     15S 0      

您也可以从打印机控制数据结构(PRTCTL)获取行号,但是您通常也想知道您的情况中的行和溢出行,并且只能在INFDS中找到。