LIB共用程序即SUB副程序
一、LIB共用程序编写
LIB程序目的:为整个系统所有模块可共用,如模块初始化、四舍五入计算、确认框等功能
1.LIB程序编写流程
①先写LIB程序,如果是客制的则最好将4fd、4gl放入$CLIB目录下面
②服务器上于LIB源文件程序目录下面,编译LIB程序:r.c2 lib共用程序,无需维护p_zz等资料
③在TIPTOP里面开启p_link,查询lib,然后将LIB程序维护进p_link的单身
④服务器上链接lib程序:r.l2 lib,即完成LIB程序的编写
2.LIB程序框架
LIB程序无Main,因为LIB程序一般都是共用功能,被其他程序调用
所以:LIB程序里面就是写的FUNCTION,写法灵活,实现目的即可
3.LIB程序实例:ccl_translate_sql.4gl (解决TIPTOP 5.10 ERP *辉* 通配符[]查询)
——程序代码略——
LIB共用程序即SUB副程序
④.r.c2编译4gl源码 -> p_link将ccl_translate_sql维护进单身 -> r.l2 lib -> OK
⑤.如何调用此共用函数
- END CONSTRUCT
- #在主程式此处如此方法调用:g_wc为QBE的SQL,一般单头为g_wc,单身为g_wc2,报表或批处理程式为tm.wc
- CALL ccl_translate_sql(g_wc) RETURNING g_wc
⑥.调用此函数主要点:
GP 5.20一下版本r报表程序存储SQL的tm.wc、tm.wc2不是STRING类型
为了可以足够存储SQL语句的值,你应该要将这些变量修正为STRING类型
二、SUB副程序编写
SUB程序目的:不同的SUB程序一般为不同的模块写,
如s_cralc.4gl为工单备料档计算程序,s_add_img.4gl为产生img档库存信息
1.SUB程序编写流程
原理同LIB程序编写一样,只不过sub程序目录在$CSUB,p_link维护的资料也是sub
编写的sub程序如果放在客制目录csub,需要每个调整的程序维护 p_link
编写的sub程序如果放在正式目录,只需要先编译程序r.c2 xxx,再r.gx sub
注意事项,所有在SUB里面的函数不能有重名。也就是SUBa.4gl里面如果有一个名为aaa()的函数,那么SUBb.4gl里面就不能再有名为aaa()的函数。
2.SUB程序框架
也无Main函数,就是一些FUNCATION,注意事项,所有在SUB里面的函数不能有重名。也就是SUBa.4gl里面如果有一个名为aaa()的函数,那么SUBb.4gl里面就不能再有名为aaa()的函数。
3.SUB程序实例
——程序代码略——
4.如何调用
程序中直接使用
三、QRY查询程序编写
QRY程序目的:做开窗查询用
请区别于p_qry的开窗程序;p_qry不用做任何4gl代码编写,为硬编码查询程序
1.QRY程序编写流程
原理同LIB程序编写一样,只不过qry程序目录在$CQRY,p_link维护的资料也是qry
编写的qry程序如果放在客制目录cqry,需要每个调整的程序维护 p_link
编写的qry程序如果放在正式目录,只需要先编译程序r.c2 xxx,再r.gx qry
2.QRY程序框架
也无Main函数,就是一些FUNCATION
3.QRY程序实例
转载请注明:赫非域 » TIPTOP LIB共用程序、SUB副程序、QRY查询程序说明