【实习之T100开发】T100 单档程序开发(2)添加功能 您所在的位置:网站首页 记录单功能怎么添加 【实习之T100开发】T100 单档程序开发(2)添加功能

【实习之T100开发】T100 单档程序开发(2)添加功能

2024-06-05 19:31| 来源: 网络整理| 查看: 265

T100单档程序 一、添加 性别[下拉框]、入职日期1、r.t 数据表增加字段2、设计器更新基础数据、重新产生基础数据3、设计器修改界面并上传4、重新下载程序代码,修改azzi600系统分类码,设置下拉框设置录入信息时显示的初值 5、修改完成,上传程序、执行程序 二、【整单操作】下加按钮 - 审核后修改身份证1、规格上 - 新增项目2、设计器 - 下载程序 - 检查产生Action代号,然后上传程序3、azzi903 将Action从 弹出式菜单 移到 整单操作4、azzi850 给新增的功能授权5、程序中修改逻辑*** 三、【整单操作】下新增【产生单据】按钮四、在标准的参数作业下新增栏位1、azzi993 查看要加栏位的作业对应的表2、azzi990 按需求添加一笔参数数据3、azzi993 设置作业参数 查询方案添加一列

目录:【实习】T100学习笔记 单档开发流程:【实习之T100开发】T100 单档程序开发(1)开发流程

一、添加 性别[下拉框]、入职日期

在 oozyuc_t 表里增加2个字段:

性别 - [下拉框,男女]入职日期、用原来的ud字段即可 1、r.t 数据表增加字段

按要求增加字段(如果表里有符合数据类型的字段优先使用),修改完成后要【执行异动】,【DBA专用】执行前3个。 在这里插入图片描述

2、设计器更新基础数据、重新产生基础数据 3、设计器修改界面并上传

按要求修改后,必须【上传】

Label 下面几个必须记住要改 在这里插入图片描述

下拉框要改下面 在这里插入图片描述

4、重新下载程序代码,修改 azzi600系统分类码,设置下拉框

【常用工具】或 r.r azzi600 打开系统分类码维护作业,点击新增即可,系统会默认给一个系统分类码,不要自己修改。

系统分类码主要用于下拉框,给下拉框去赋值。

在这里插入图片描述

设置好系统分类码后,在代码中给其赋值。

给下拉框设置值:在xxxx_init的画面资料初始化代码区赋值。

# 性别分类码,在azzi600维护分类码的基础资料,主要用于【下拉框】 CALL cl_set_combo_scc('oozyuc007', '18533') 设置录入信息时显示的初值

在xxxx_insert 单头预设值 代码区赋值。

LET g_oozyuc_m.oozyuc017 = g_today # 将入职日期默认为当天 LET g_oozyuc_m.oozyuc007 = '1' # 将性别默认为男性 5、修改完成,上传程序、执行程序 二、【整单操作】下加按钮 - 审核后修改身份证

在整单操作下面新增一个按钮,用来判断,审核状态下,可以修改身份证号码。

规格中 - 右边点击【新增项目】,在左边 Action设定 修改 Action代号,说明;然后上传画面设计器 - 下载程序 - 检查产生Action代号,然后上传程序azzi903 将Action从 弹出式菜单 移到 整单操作 azzi903 - 查询 cooi666,双击整单操作,复制整单操作的上阶功能编号full-operator azzi903 - 弹出式菜单下找到action代号,选择代号,将上阶功能编号修改成full-operator 保存,关闭azzi903,重新产生4adazzi850 给新增的功能授权在4gl的 uidialog 的 meun段 找到 on actoin 代号,在里面写入逻辑即可 1、规格上 - 新增项目

右边点击【新增项目】,在左边 Action设定 修改 Action代号,说明;然后上传画面。 在这里插入图片描述

2、设计器 - 下载程序 - 检查产生Action代号,然后上传程序 3、azzi903 将Action从 弹出式菜单 移到 整单操作

原因是第1步中默认的【新增项目】其实会加到【弹出式菜单中】,我们需要将它放到【整单操作】中

①查询 cooi666,点击整单操作,复制整单操作的上阶功能编号 full-operator 在这里插入图片描述

②弹出式菜单下找到 Action代号,选择代号,将上阶功能编号修改成 full-operator

在这里插入图片描述

③保存,关闭azzi903,重新产生 4tm、4ad 在这里插入图片描述

此时重新运行程序,界面上已经有相应按钮,但是由于没有写逻辑代码,所以点击没有效果。

4、azzi850 给新增的功能授权

打开 azzi850,查询作业编号cooi666,给新增的Action进行功能授权。 在这里插入图片描述

5、程序中修改逻辑***

设计器中新增函数 在这里插入图片描述 在这里插入图片描述

不要忘记在 ui_dialog 里定义变量:

DEFINE l_success LIKE type_t.num10

在 ON ACTION modify_sfz 处添加代码:

#應用 a43 樣板自動產生(Version:4) ON ACTION modify_sfz LET g_action_choice="modify_sfz" IF cl_auth_chk_act("modify_sfz") THEN #add-point:ON ACTION modify_sfz name="menu2.modify_sfz" #单据必须是审核状态才能执行这个功能 IF g_oozyuc_m.oozyucstus = 'Y' THEN #因为修改画面上的身份证需要异动到数据表,所以需要开启事务 CALL s_transaction_begin() #通过下面函数返回的l_success,判断事务是提交还是回滚 CALL cooi666_modify_sfz() RETURNING l_success IF NOT l_success THEN CALL s_transaction_end('N', '0') #回滚 ELSE CALL s_transaction_end('Y', '0') #提交 END IF ELSE #报错,单据状态不是审核,不能点此按钮 INITIALIZE g_errparam TO NULL LET g_errparam.extend = "" LET g_errparam.code = "coo-00667" #azzi920维护错误代码 LET g_errparam.popup = TRUE CALL cl_err() EXIT MENU #报错后退出MENU END IF #END add-point END IF

然后去写 cooi666_modify_sfz() 函数的代码:

PRIVATE FUNCTION cooi666_modify_sfz() DEFINE l_success LIKE type_t.num10 #返回值 #将返回值默认为TRUE,在下面如果有报错就默认为false,表示事务会执行回滚 LET l_success = TRUE #先开启游标,找的是MAIN函数里面的for update的游标,目的是为了锁住这边资料不被其他人修改 OPEN cooi666_cl USING g_enterprise,g_oozyuc_m.oozyuc00 #这里是判断cooi123_cl这个游标对应得SQL语句有无报错 IF STATUS THEN #若报错,走下面的报错信息,并且关闭游标,直接返回FALSE INITIALIZE g_errparam TO NULL LET g_errparam.extend = "OPEN cooi666_cl:" LET g_errparam.code = STATUS LET g_errparam.popup = TRUE CALL cl_err() CLOSE cooi666_cl #关闭游标 LET l_success = FALSE RETURN l_success #直接返回 FALSE END IF #通过input语法直接修改身份证号,如果不写input,不能在画面上输入字段的值 DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM) INPUT BY NAME g_oozyuc_m.oozyuc005 ATTRIBUTE(WITHOUT DEFAULTS) BEFORE INPUT BEFORE FIELD oozyuc005 AFTER FIELD oozyuc005 #校验带值 IF NOT cl_null(g_oozyuc_m.oozyuc005) THEN #写一些其他逻辑 DISPLAY BY NAME g_oozyuc_m.oozyuc005 END IF ON CHANGE oozyuc005 ON ACTION controlp INFIELD oozyuc005 #如果是需要开窗写在下面 AFTER INPUT #input输入之后,直接更新到数据库 UPDATE oozyuc_t SET oozyuc005 = g_oozyuc_m.oozyuc005 WHERE oozyucent = g_enterprise AND oozyuc001 = g_oozyuc_m.oozyuc001 IF SQLCA.SQLCODE THEN INITIALIZE g_errparam TO NULL LET g_errparam.extend = "" LET g_errparam.code = SQLCA.SQLCODE LET g_errparam.popup = TRUE CLOSE cooi666_cl CALL cl_err() LET l_success = FALSE END IF END INPUT #input结束 ON ACTION controlf CALL cl_set_focus_form(ui.Interface.getRootNode()) RETURNING g_fld_name,g_frm_name CALL cl_fldhelp(g_frm_name, g_fld_name, g_lang) ON ACTION controlr CALL cl_show_req_fields() ON ACTION controls IF g_header_hidden THEN CALL gfrm_curr.setElementHidden("vb_master",0) CALL gfrm_curr.setElementImage("controls","small/arr-u.png") LET g_header_hidden = 0 #visible ELSE CALL gfrm_curr.setElementHidden("vb_master",1) CALL gfrm_curr.setElementImage("controls","small/arr-d.png") LET g_header_hidden = 1 #hidden END IF ON ACTION accept ACCEPT DIALOG ON ACTION cancel #取消 LET INT_FLAG = TRUE ON ACTION close #关闭,右上角的(X) ACCEPT DIALOG ON ACTION exit #离开 ACCEPT DIALOG #交談指令共用ACTION &include "common_action.4gl" CONTINUE DIALOG END DIALOG RETURN l_success END FUNCTION 三、【整单操作】下新增【产生单据】按钮

在整单操作下新增一个按钮【产生单据】

复制 oozyuc表 为 oozzuc表在 cooi666 新增一个按钮【产生单据】当单据状态为已审核时,点击【产生单据】,将此笔数据库产生到 oozzuc表 规格中 - 右边点击【新增项目】,在左边 Action设定 修改 Action代号,说明;然后上传画面设计器 - 下载程序 - 检查产生Action代号,然后上传程序azzi903 将Action从 弹出式菜单 移到 整单操作 azzi903 - 查询 cooi666,双击整单操作,复制整单操作的上阶功能编号full-operator azzi903 - 弹出式菜单下找到action代号,选择代号,将上阶功能编号修改成full-operator 保存,关闭azzi903,重新产生4adazzi850 给新增的功能授权在4gl的 uidialog 的 meun段 找到 on actoin 代号,在里面写入逻辑即可

1、2、3、4步都与之前一样。

表格复制 在这里插入图片描述 复制完后,必须: ①执行异动 ②左上角【DBA专用】,前3个选项都点一下

5、去程序中修改逻辑:

不要忘记在 ui_dialog 里定义变量:

DEFINE l_success LIKE type_t.num10

在 ON ACTION insert_oozzuc 处写调用函数的逻辑:

ON ACTION insert_oozzuc LET g_action_choice="insert_oozzuc" IF cl_auth_chk_act("insert_oozzuc") THEN #add-point:ON ACTION insert_oozzuc name="menu2.insert_oozzuc" IF g_oozyuc_m.oozyucstus = 'Y' THEN #因为修改画面上的身份证需要异动到数据表,所以需要开启事务 CALL s_transaction_begin() #通过下面函数返回的l_success,判断事务是提交还是回滚 CALL cooi666_insert_oozzuc() RETURNING l_success IF NOT l_success THEN CALL s_transaction_end('N', '0') #回滚 ELSE CALL s_transaction_end('Y', '0') #提交 END IF ELSE #报错,单据状态不是审核,不能点此按钮 INITIALIZE g_errparam TO NULL LET g_errparam.extend = "" LET g_errparam.code = "coo-00667" #azzi920维护错误代码 LET g_errparam.popup = TRUE CALL cl_err() EXIT MENU #报错后退出MENU END IF #END add-point END IF ################################################################################ # Descriptions...: 将当前的资料产生到oozzuc表中 # Memo...........: # Usage..........: CALL s_aooi150_ins (传入参数) # RETURNING 回传参数 # Input parameter: 传入参数变量1 传入参数变量说明1 # : 传入参数变量2 传入参数变量说明2 # Return code....: 回传参数变量1 回传参数变量说明1 # : 回传参数变量2 回传参数变量说明2 # Date & Author..: 2021/1/15 By lzy # Modify.........: ################################################################################ PRIVATE FUNCTION cooi666_insert_oozzuc() DEFINE r_success LIKE type_t.num10 DEFINE l_oozzuc RECORD oozzucent LIKE oozzuc_t.oozzucent, #企业代码 oozzucsite LIKE oozzuc_t.oozzucsite,#营运据点 oozzuc001 LIKE oozzuc_t.oozzuc001, oozzuc002 LIKE oozzuc_t.oozzuc002, oozzuc003 LIKE oozzuc_t.oozzuc003, oozzuc004 LIKE oozzuc_t.oozzuc004, oozzuc005 LIKE oozzuc_t.oozzuc005, oozzuc006 LIKE oozzuc_t.oozzuc006, oozzuc007 LIKE oozzuc_t.oozzuc007, oozzuc017 LIKE oozzuc_t.oozzuc017, oozzucownid LIKE oozzuc_t.oozzucownid, #资料所有者 oozzucowndp LIKE oozzuc_t.oozzucowndp, #资料所属部门 oozzuccrtid LIKE oozzuc_t.oozzuccrtid, #资料建立者 oozzuccrtdp LIKE oozzuc_t.oozzuccrtdp, #资料建立部门 oozzuccrtdt LIKE oozzuc_t.oozzuccrtdt, #资料创建日 oozzucmodid LIKE oozzuc_t.oozzucmodid, #资料修改者 oozzucmoddt LIKE oozzuc_t.oozzucmoddt, #最近修改日 oozzucstus LIKE oozzuc_t.oozzucstus #状态码 END RECORD LET r_success = TRUE INITIALIZE l_oozzuc.* TO NULL #初始化数组 LET l_oozzuc.oozzucent = g_enterprise #企业代码 LET l_oozzuc.oozzucsite = g_site #营运据点 LET l_oozzuc.oozzuc001 = g_oozyuc_m.oozyuc001 LET l_oozzuc.oozzuc002 = g_oozyuc_m.oozyuc002 LET l_oozzuc.oozzuc003 = g_oozyuc_m.oozyuc003 LET l_oozzuc.oozzuc004 = g_oozyuc_m.oozyuc004 LET l_oozzuc.oozzuc005 = g_oozyuc_m.oozyuc005 LET l_oozzuc.oozzuc006 = g_oozyuc_m.oozyuc006 LET l_oozzuc.oozzuc007 = g_oozyuc_m.oozyuc007 LET l_oozzuc.oozzuc017 = g_oozyuc_m.oozyuc017 LET l_oozzuc.oozzucownid = g_oozyuc_m.oozyucownid #资料所有者 LET l_oozzuc.oozzucowndp = g_oozyuc_m.oozyucowndp #资料所属部门 LET l_oozzuc.oozzuccrtid = g_oozyuc_m.oozyuccrtid #资料建立者 LET l_oozzuc.oozzuccrtdp = g_oozyuc_m.oozyuccrtdp #资料建立部门 LET l_oozzuc.oozzuccrtdt = g_oozyuc_m.oozyuccrtdt #资料创建日 LET l_oozzuc.oozzucmodid = g_oozyuc_m.oozyucmodid #资料修改者 LET l_oozzuc.oozzucmoddt = g_oozyuc_m.oozyucmoddt #最近修改日 LET l_oozzuc.oozzucstus = g_oozyuc_m.oozyucstus #状态码 #插入数据库 INSERT INTO oozzuc_t(oozzucent, oozzucsite, oozzuc001, oozzuc002, oozzuc003, oozzuc004, oozzuc005, oozzuc006, oozzuc007, oozzuc017, oozzucownid, oozzucowndp, oozzuccrtid, oozzuccrtdp, oozzuccrtdt, oozzucmodid, oozzucmoddt, oozzucstus) VALUES(l_oozzuc.oozzucent, l_oozzuc.oozzucsite, l_oozzuc.oozzuc001, l_oozzuc.oozzuc002, l_oozzuc.oozzuc003, l_oozzuc.oozzuc004, l_oozzuc.oozzuc005, l_oozzuc.oozzuc006, l_oozzuc.oozzuc007, l_oozzuc.oozzuc017, l_oozzuc.oozzucownid, l_oozzuc.oozzucowndp, l_oozzuc.oozzuccrtid, l_oozzuc.oozzuccrtdp, l_oozzuc.oozzuccrtdt, l_oozzuc.oozzucmodid, l_oozzuc.oozzucmoddt, l_oozzuc.oozzucstus) #若SQL有错则展示错误 IF SQLCA.SQLCODE THEN INITIALIZE g_errparam TO NULL LET g_errparam.extend = "" LET g_errparam.code = SQLCA.SQLCODE LET g_errparam.popup = TRUE CALL cl_err() LET r_success = FALSE END IF RETURN r_success END FUNCTION 四、在标准的参数作业下新增栏位

目标:在 aoos010 上新增一个栏位 在这里插入图片描述

1、azzi993 找到在哪个参数作业下新增栏位,然后双击选中的参数作业,可以知道对应的表是哪个 2、azzi990 中查询处对应的表,双击单身,点击录入,找到应用领域下,会自动产生一笔对应的资料,自己维护即可(根据需求选择录入限制数据形态,入勾选框选择1,Y/N)

1、azzi993 查看要加栏位的作业对应的表

利用 azzi993 查询 aoos010,可知它对应的表是:ooaa_t 在这里插入图片描述

2、azzi990 按需求添加一笔参数数据

记住它的参数编号 E-COMC0009(自动生成的) 在这里插入图片描述

3、azzi993 设置作业参数

在这里插入图片描述 此时,再次打开 aoos010,参数产生完成。 在这里插入图片描述

查询方案添加一列

在这里插入图片描述 注意!修改完规格必须做下面的事情! ①上传规格 ②下载程序 ③上传程序(无论改不改)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有