您可以使用RPG将其他行附加到打印机文件吗?

Mik*_*ica 2 rpgle ibm-midrange

有没有一种方法可以在打印机文件的末尾附加其他行?我用于创建打印机文件的大多数技术(RPG O规范,写入外部定义的文件)都会使您每个程序只有一个输出文件。我想在一个程序或过程中写一些行,然后让另一个程序或过程打开文件并写其他行。

特定的用例是具有一个“订单标题”,该“订单标题”对于多个报表是相同的,而下面的行项目数据是特定于报表的。我想我可以将所有这些都保存在一个大型程序中,而报表的变体位于单独的RPG子例程中,但是我喜欢从多个不同程序中调用通用标头的模块化,并且将来可能还会有其他报告。

系统的体系结构可能会阻止这种技术,因为我不清楚如何保持文件打开并通过它,或者如何打开已经放入出队列的关闭文件。我过去曾经使用过CPYSPLF,虽然我可能可以使用它来读取以前编写的内容,但是创建一个文件,关闭它,将其复制到QTEMP,读取它,然后将其重新写入另一个文件中似乎毫无意义。然后删除第一个打印机文件。也许还有其他我没有想到的方法。

Cha*_*les 7

是的,这当然是可行的。
现代方式
利用LIKEFILE关键字来将打开的打印机文件作为参数传递。参见https://www.itjungle.com/2012/03/21/fhg032112-story01/

老式的方式
创建一个CL程序,该程序发出,OVRPRTF FILE(PRNTFILE) SCHEDULE(*FILEEND) SHARE(*YES)然后调用PGM1和PGM2;PGM1将需要使PRTF保持打开状态,因此不要在PGM1中的* LR上进行设置。

这是一篇文章:https : //www.itjungle.com/2011/05/11/fhg051111-story02/