Ibm midrange 您可以使用RPG向打印机文件追加额外的行吗?

Ibm midrange 您可以使用RPG向打印机文件追加额外的行吗?,ibm-midrange,rpgle,Ibm Midrange,Rpgle,有没有办法在打印机文件的末尾追加额外的行?我用来创建打印机文件的大多数技术(RPG O规范、写入外部定义的文件)都会导致每个程序有一个输出文件。我想在一个程序或过程中写一些行,然后让另一个程序或过程打开文件并写额外的行 特定的用例是有一个“订单头”,它对于多个报表是相同的,下面的行项目数据是报表特定的。我想我可以把这些都保存在一个大型程序中,报告的变化在单独的RPG子例程中,但我喜欢从几个不同的程序调用通用头的模块性,将来可能还会调用其他报告 系统的体系结构可能会阻止这种类型的技术,因为我不清楚

有没有办法在打印机文件的末尾追加额外的行?我用来创建打印机文件的大多数技术(RPG O规范、写入外部定义的文件)都会导致每个程序有一个输出文件。我想在一个程序或过程中写一些行,然后让另一个程序或过程打开文件并写额外的行

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


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

是的,这当然是可以做到的…
现代方式
利用
LIKEFILE
关键字将打开的打印机文件作为参数传递。 看

老派的方式
创建一个CL程序,该程序发出一个
OVRPRTF文件(PRNTFILE)计划(*FILEEND)共享(*YES)
,然后调用PGM1和PGM2;PGM1需要保持PRTF打开,因此不要在PGM1中设置*LR

以下是一篇文章: