TIPTOP GP ERP二次开发规范说明
TIPTOP ERP共分三大区:topstd(标准区) + toppord(正式区) + toptest(测试区)
标准区 正式生产环境 用户测试,MIS程序客制测试 ┧━━━━━━┸━━━━━━┫ 目录结构和topprod完全一样 标准tiptop($TOP) 客制topcust($CUST)
┧━━━━━━┳━━━┳━━━━━┳━━━┳━━━━╀━━━━━┫ ┗→目录结构和$TOP完全一样,只不过模组目录都是c开头的了
config doc ds4gl2 ora out schema 各模组目录(axm、asf...截止5.25已经有47个模组+sub+lib+qry) config:配置文件目录(top.global全局变量、4ad各程序ACTION列表、4st画面风格、4tb界面按钮风格、等)
doc:帮助文档+系统图片目录 ds4gl2:一些脚本目录,如r.c2、r.l2等 ora:一下数据库应用查询脚本,如q_tabFREE等 out:临时目录
schema: 数据库sch文件目录
各模组目录:4fd画面档目录、per画面档编译后per目录、4gl源码档、42m、42r
Genero Studio文件说明
说明:$XXX表示各个模组;√:服务器必须文件;×服务器可选文件 4pw:Genero Studio项目工程文件(位于服务器目录:$XXX/4pw)× 4fd:画面档(位于服务器目录:$XXX/4fd)√
per:gsform后4fd画面档对照文件(4fd经过gsform后的文件,位于服务器目录:$XXX/per)√ 42f:编译后的画面档文件(4fd经过r.f2后的文件,位于服务器目录:$XXX/per)√ 4gl:源码档(位于服务器目录:$XXX/4gl)√
42m:编译后的源码链接档(4gl经过r.c2后的编译档,位于服务器目录:$XXX/42m)√ 42r:链接后的可执行文件(42m经过r.l2后的链接档,位于服务器目录:$XXX/42r)√ 4rp:报表文件(位于服务器目录:$XXX/4rp)× sch:数据库表结构文件(位于服务器目录:$XXX/sch)×
TIPTOP ERP客制规范命名原则
程序命名原则: XXX(3码) X(2码) XXX(3-5码)
模组名 程序类型 流水号
模组名:①如果为标准程序, 程序名一定是a开头, 程序位于对应的$AXX模组目录 ②如果修改标准程序,有些公司是修改为c程序 有些公司还是用原来的a程序
........................................................但是目录一定都是对应的$CXX模组目录 ③如果是新增程序, 程序名一定是c开头, 程序目录一定是对应的$CXX模组目录 程序类型:r报表类程序、i基础资料类程序、q查询类程序、t交易类程序、p批处理类程序、s参数类程序 流水号:一般随便编录,不重复就好;专业些就是同一作用的程序流水号一类
$AZZ程序都是p_开头,规则不同与上
$LIB为共用查询程序,都是cl_开头 - $CLIB为 客制共用查询程序,都是ccl_开头 $SUB为副程序,都是s_开头 - $CSUB为客制副程序,都是cs_开头
$QRY为查询程序,都是q_开头 - $CQRY为客制查询程序,都是cq_开头
程序内部FUNCTION函数命名原则: X(2码)XXX(3-5码)_功能() 常见功能函数如下:
_menu:action功能菜单
_q: 开始查询,调用_fetch查取第一笔资料
_cs: QBE条件查询 及 查询游标声明
_fetch:N、P、F、L、/ 处理下、上、第一笔、末笔、指定笔单头资料读取,并调用_show显示资料 _show:显示单头资料,如需要并调用_b_fill填充单身资料 _a: 新增,并先后调用_i(a)输入单头资料 和 _b输入单身资料 _i: 根据函数接受的参数 a新增资料、u更新资料 _u: 更新,调用_i(u)更新资料 _b: 单身CRUD业务逻辑 _b_fill: 单身资料填充
_bp: 显示单身资料,提供单身action功能选项 _r: 删除整笔资料 _out: 打印函数
_x: 资料无效、有效处理 _pic: 显示或刷新图片 _ef: EasyFlow送签 _y: 确认 _z: 取消确认 _s: 过账 _w: 过账还原
_gen/_g: 一般为根据某action自动产生单身资料
_sub_y_chk 或 _y_chk :一般为复杂逻辑t程序 \确认\动作时执行资料逻辑检查 _sub_y_upd 或 _y_upd:一般为复杂逻辑t程序“确认”动作时执行资料更新
_sub_refresh: 一般为复杂逻辑t程序 \确认 \、\取消确认\、\过账\、\过账还原\动作更新后的资料刷新
_sub_s: 一般为复杂逻辑t程序“过账” _set_entry: 设置单头栏位 可进入录入资料 _set_no_entry: 设置单头栏位不可进入录入资料 _set_entry_b: 设置单身栏位 可进入录入资料 _set_no_entry_b: 设置单身栏位不可进入录入资料 _set_required: 设置栏位为必须输入资料
_init: 初始化程序栏位是否可视,ACTION是否可视 _a_default: 新增资料时赋初值 _b_move_to: 单身栏位赋值、备份 _b_move_back: 单身栏位值还原
修改数据库表栏位命名规则:
①.修改 现有表现有列:表列名称不变,只是旗标会自动由标准变成客制 ②.在现有表上增加列:表列规则 ta_原表流水号,ex:ta_ima001
③.新增表:表名及表列规则都是tc开头,表tc_xxx_file,表列tc_xxx流水号,ex:tc_lee_file,tc_lee001
TIPTOP GP ERP 二次开发流程
前提:熟悉基础的Linux命令+4GL基础语法+SQL语法,你可以看看本手册里面对应目录的相关资料
一、p_zta增加或修改表(如果不用改表,这步可以跳过)
修改表要数据库DBA的权限,如果你的账号没有这个权限可以在Linux服务器上用root执行一下脚步 usermod -a -g dba Linux用户名(ex:为liyihui这个账号添加数据库dba组的权限 usermod -a -g dba liyihui) (注意: 是小 DBA 2、新增或修改表
注意:你至少需要新增或修改ds库 和 程序业务使用的数据库,ds库是程序编译时参照的库(比如 LIKE ima_file.tc_ima01)
①.如果是新建表,先 建立p_zta资料后,然后 点击 ②.然后点击
;如果是修改表就不用做这步骤了
g 不是大G,大G是标准组,会覆盖之前用户所在的组,而不是添加组了)
1、登入p_zta
,根据是新增表还是修改表选择对应的选项操作 //非必须操作
③.更新ds.sch,Linux服务器上执行命令 r.s2 ds //非必须操作,p_zta最后会自动r.s2一下 我的技巧:如果多个营运中心都需要建立同一张表,我是这么做的 ①.ds帐套在p_zta按上面的流程建立表
②.其他帐套在PL/SQL执行SQL:CREATE TABLE 表 AS SELECT * FROM ds.表 ③.复制出zta_file及ztb_file该表的信息(将所属者改为其他帐套,每个帐套一份) ④.再到p_zta里面,修改各个帐套的表的索引就OK了
二、如果是将 a标准程序 修改为 c客制程序,这里先做;如果是新增程序直接跳过本步骤
为什么要先插入这一步:这样r.gf 客制程序 2 c后自动新增的p_perlang和p_per就不用维护什么资料了 1、p_perlang复制a标准程序的画面档资料为c客制程序的画面档资料
p_perlang先查询出标准程序的资料 -> 再按c(拷贝) -> 写入客制程序的代码 + 勾选\客制\栏位 ex:先查询asft620的资料,然后 复制(按c) 将asft620客制为csft620
2、p_per同理
三、新增或修改4fd画面档及4gl程序源码档
1、Linux服务器上下载ds.sch (如果做的4fd不用参照表就不用下载了,比如一些报表) Linux服务器上执行 sz $TOP/schema/ds.sch 2、打开Genero Studio软件,开始绘制4fd画面档
①.建立Genero Studio的工程项目(注意是 .4pw 的工程项目工程文件哟) 点击Ctrl + S 先保存项目文件,这是个人经常性按Ctrl+S保存文件的习惯^_^
②.导入前面下载的 ds.sch 文件到工程文件中(否则等下做4fd画面档时 会出现找不到表的情 ③.将导入的 ds.sch 文件保存到工程文件中的Databases目录下面 ④.新建或修改4fd画面档
对于新建4fd画面档时,我一般都是先摆好所有的控件,然后选择对应同一个表的所有控件(Ctrl可多选),再一起修改对应的表