Data structures 如何检索PRTF中的当前行数

Data structures 如何检索PRTF中的当前行数,data-structures,ibm-midrange,rpgle,Data Structures,Ibm Midrange,Rpgle,我必须修改一个正在打印数据的程序。 现在的任务是编写一种新的方法,在达到某一行号时如何开始新的页面。由于在spool文件的末尾打印了一些常量数据,因此不能用新的页面分隔这些数据 当前的方法是增加一个计数器。但这是非常糟糕的方式,因为当打印条形码时,我不知道这个条形码有多大(多少行)。而且,我想实现一种可以在所有程序上实现的方法,这样我就不必自己测试和获取每个条形码的大小 我知道有显示文件的数据结构告诉我光标的位置。所以-据我所知-必须有可能与PRTF和当前线路号相同 有人知道怎么做吗? 谢谢 我

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

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

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

有人知道怎么做吗?
谢谢

我会使用文件信息数据结构(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)中获取行号,但您通常还需要了解您的情况下的行和溢出行,这些信息只能在INFD中找到。

我将使用文件信息数据结构(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)中获取行号,但您通常还想知道您的情况下的行和溢出行,这只能在INFD中找到。

您是否尝试查找打印机文件信息数据结构?其中有一个当前行号。但我不知道它是为AFPD还是IPDS数据流填充的。您是否尝试过查找打印机文件信息数据结构?其中有一个当前行号。但我不知道它是为AFPD还是IPDS数据流填充的。回答不错,但OP正在处理IPDS或AFPDS打印机文件,因为他正在打印条形码。正如马克在文章中评论的那样,我认为一旦你开始处理非文本数据,第#行就不准确了。回答得好,但OP正在处理IPDS或AFPDS打印机文件,因为他正在打印条形码。正如马克在文章中评论的那样,我认为一旦你开始处理非文本数据,这行就不准确了。