声明:
由于程序属于公司的产品,所以不要向我索要源代码。由于我们不是专业的IT公司,所以我能够提供一个思想。
原理:
1。Control Language的编译
这个比较简单,只需要根据source的类型,调用CL的编译命令
2。Print File的编译
如果正常的话,我们通常都不需要在编译打印文件的时候增加任何参数。
但是某些报表,比如财务的发票等等我们可能就需要指定关键字了。
比如多少行溢出。
3。Phical File和Logical File
这个建议手动编译,因为比较危险。而且可能需要change ccsid 和object owner
4。Display File
这个比较简单,只需要根据source的类型,调用打印文件的编译命令
5。Rpgle,重点哦
首先,如果你的主机是v4r4或者以前的版本,你创建rpgle的时候不需要指定module为自己。如果是之后版本的,那么需要指定。
通常,我们可能会用callb的形式,或者callp的形式,那么我们就需要编译成模块,然后绑定这些模块成一个object.
如果这个程序需要反复的编译,那是不是觉得很烦躁呢?
那么,我们就可以在source的前几行输入我们的条件
*/KEYWORD
* MODULE(EQ146APG M@ABC)
*/KEYWORD
其中EQ146APG是我们的主程序,需要用CALLB的形式调用M@ABC
实现篇:
说了那么多条件,那么我们动手来做了
其实我们要做得很简单,就是要组合/KEYWORD包含的那几行
然后根据SOURCE的类型调用对应的参数,然后增加我们预先设定的那些关键字。
表扔鸡蛋。本来嘛,我就说了是揭秘。
其实,这个也是有优势的,对于print file和rpgle的编译很有用,有利于接受该程序的人编译程序,和简化打印文件的编译,不然格式不对了,客户会叫的。