首页 > 解决方案 > 您可以使用 RPG 将附加行附加到打印机文件吗?

问题描述

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

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

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

标签: ibm-midrangerpgle

解决方案


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

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

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


推荐阅读