05_T100 单档程序开发(员工资料)
单双档程序的 (全新) 开发流程
首先要通过 r.t
(adzi140) 建立表
- azzi900 建立 程序代号
程序代号是唯一的。 - azzi910 建立 作业代号
一个程序代号可以被多个作业使用。 - 通过设计器 - 规格(签出规格)
规格相当于画面。 - 通过设计器 - 程序(签出程序)
- adzp168 通过画面产生器产生画面
- 通过设计器 - 规格(下载规格)
r.q
开窗,r.v
校验带值(根据需求设定)- 通过设计器 - 程序(下载程序)
- 通过设计器 - 档案(开启规格档案)- 修改程序 - 上传程序
- 通过设计器 - 程序(下载程序)- 上传程序
(先上传程序,没有报错再来修改对应逻辑) - 通过 azzi850 给程序授权
r.r
执行程序- azzi880 将程序挂到 menu
- 单身限制最大500笔,可以通过程序修改
- s_desc为公共函数,可以下载查看
- immauud008:带有ud的为标准表预留字段,可以修改字段名称的“自定义自段(文本)”使用
- excel导入导出参考axct302的axct302_s02_ims_excel、SUB/s_aint911下的Function为s_aint911_excel
1、azzi900 建立 程序编号
按 ctrl + i 或点击【录入信息】,然后输入 [程序编号] 和 [程序名称],尽量采用旗帜录入生成多语言。
2、azzi910 建立 作业编号
同样 ctrl + i 或点击【录入信息】,输入 [作业编号](一般与程序编号相同即可)
3、adzi140 数据表设计器介绍
执行r.r adzi140
或 助记码r.t
都可以打开数据表设计器
1)选中基础资料档向右拖动即可添加相应字段
2)选中流水号往右拖动增加字段
3)添加字段名称和属性,字段搜索可按编号搜索:C*、N*、D*,字段简称搜索:*号工*编号*,长度搜索:20
4)设置主键、执行异动提交到数据库(异动过后表左边的!感叹号将消失)
5)adzi150 字段规格设计:ButtonEdit为开窗,ComboBox为下拉选择
6)azzi600 新建系统分类码
7)、为性别设置系统分类码、设置年龄最少值
8)、r.q 新增部门开窗:部门维护aooi125,对应表:ooeg | ooefl
-- 对应开窗SQL(:LANG当前语言,:ENT当前企业编号)
-- wc是查询和编辑都会组进去的条件,inwc里面的则是只在编辑的时候才组进去
SELECT DISTINCT <field>ooeg001,ooefl004</field>
FROM <table>ooeg_t LEFT JOIN ooefl_t ON ooegent=ooeflent AND ooeg001=ooefl001 AND ooefl002=:LANG</table>
WHERE <wc>ooegent=:ENT</wc><inwc></inwc>
ORDER BY ooeg001
9)、r.v 新增部门校验带值,错误信息维护在:azzi920(信息编号,前3位为模组编号,后5位流水号:coo-12345)
SELECT <count>COUNT(*) </count>
FROM <table>ooeg_t</table>
WHERE <wc>ooegent =:ENT AND ooeg001 = 'arg1'</wc>
10)adzi150字段规格设计设置部门开窗及检验带值
11)、状态码设置
12)、设置完表格再签入,新建表格默认会签出状态,只有签出状态才能修改表格
4、T100设计器签出规格和程序
5、adzp168画面产生
6、T100设计器下载规格(4fd)和程序(4gl),修改并上传,上传完之后再签入规格和程序(签入状态无法修改),这样下次签出版本号就会自动加1
如果没有数据,【进阶功能】-【更新基础数据】、【重新产生基础数据】
注:只有在【上传】了规格文件以后,才会生成程序,才能够下载。
7、adzp063设计数据删除工具,常用3、4、6
8、azzi880设置menu菜单
9、 azzi850 给程序授权
azzi800 可以查询账号
利用权限的账号给程序授权。
10、测试区程序转生产区
1)、测试区r.t 表格设计数据导出
2)、切换到生产区,r.t->工具->表格设计数据导入
3)、T100设计器(测试站台)->常用工具->导出设计数据->查询程序编号->导出
4)、T00设计器->进阶功能->站台管理->常用工具->汇入设计数据
会自动备份覆盖前的版本,最好下载到本地保存备份
5)、测试区adzi888程序注册数据导出:添加要导出的清单->整单操作->导出(清单+数据)
客制后可以通过azzi902(程序画面多语言维护)修改画面对应编号的文本(通常下载规格修改),azzi902优先级高于T100设计器的画面文本
6)、测试区adzi888:整单操作->导出栏下载
7)、切换正式区,adzi888:整单操作->导出栏上传
8)、切换正式区,adzi888:整单操作->程序注册数据导入
正式区配置不可修改程序以及开启开发需求单
cd $TOP
cd ../etc
vi chenv
TOPCHKOUT=Y --(Y为可签出开发,N无权签出,正式区设置之后,只能通过测试区搬到正式区)
TOPALM=N --(Y启用开发需求单adzi800,N不启用)
DBA专用 下较为重要的选项是前3个。
- 当新增表、修改字段后,设计器下显示的没有更新时,将这3个选项都点一下。
工具 下较为重要的选项是前2个。
- 可以用与测试区与正式区之间,表的相互导入导出。
签入 / 签出
签出 相当于把表解锁,此时你才能修改表
签入 相当于把表提交上去,此时表会被锁定,无法修改。
r.t 建表
设计器 - 档案 - 开启档案,直接上传程序(修改程序)
将刚下载的程序直接【上传】一下,确保设计器默认生成的没有问题,再开始修改。
年龄限制功能开发
--采用!为偷懒的办法,最终输出的为extend内容 IF cl_null(g_xmdc_d[l_i].xmdc006) THEN INITIALIZE g_errparam TO NULL LET g_errparam.extend = "项次",g_xmdc_d[l_i].xmdcseq,"单位为空不可审核,请检查!" LET g_errparam.code = "!" LET g_errparam.popup = TRUE CALL cl_err() END IF
错误代码维护:azzi920
修改完后再次【上传】
Debugger
r.d 作业编号 或者 T100设计器->程序->程序除错
Toggle打断点,ctrll+d 设置 watch 监控变量后(直接设置变量值:set variable oosg003='test'),点击【Run】开始调试
Find找查:按F3往下查找
To Cursor:直接运行到光标所在位置
Step Into:进入函数体内
Step Out:跳出函数体
Step Over 一步步看
找出问题,修改程序后,重新编译、链接、执行
cd 进入对应目录
编译r.c cooi666
链接r.l cooi666
执行r.r cooi666
程序源码分析
编辑时开窗写在 xxxx_input
中,状态为 i
查询时开窗写在 xxxx_construct
中,状态为 c
xxxx_insert
中有预设值可以写,没有的话基本不用动什么xxxx_construtc
中除了开窗,其他基本不用改什么
程序按钮对应函数:下面列举几个,其余全部可以通过 DEBUG 去调试找到。
-
xxxx_ui_dialog()
中的ON ACTION insert
-
xxxx_ui_dialog()
中的ON ACTION query
-
xxxx_ui_dialog()
中的ON ACTION mainhidden
-
xxxx_ui_dialog()
中的ON ACTION worksheethidden