最新消息:本站持续更新中,请注意添加收藏夹。搜索关键词时,多换一个同义词。比如要搜索界面,可以尝试页面,画面,PER档等词汇。善于搜索,将大大提高你的查找效率。

【实习之T100开发】程序开发之添加修改功能

T100 ERP bron1984 6103浏览

本章节包含以下内容:

 

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

1、r.t 数据表增加字段

2、设计器更新基础数据、重新产生基础数据

3、设计器修改界面并上传

4、重新下载程序代码,修改

azzi600系统分类码,设置下拉框

设置录入信息时显示的初值

5、修改完成,上传程序、执行程序

二、【整单操作】下加按钮 - 审核后修改身份证

1、规格上 - 新增项目

2、设计器 - 下载程序 - 检查产生Action代号,然后上传程序

3、azzi903 将Action从 弹出式菜单 移到 整单操作

4、azzi850 给新增的功能授权

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

三、【整单操作】下新增【产生单据】按钮

四、在标准的参数作业下新增栏位

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

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

3、azzi993 设置作业参数

查询方案添加一列

 

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

在 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、修改完成,上传程序、执行程序

二、【整单操作】下加按钮 – 审核后修改身份证

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

  1. 规格中 – 右边点击【新增项目】,在左边 Action设定 修改 Action代号,说明;然后上传画面
  2. 设计器 – 下载程序 – 检查产生Action代号,然后上传程序
  3. azzi903 将Action从 弹出式菜单 移到 整单操作
    azzi903 – 查询 cooi666,双击整单操作,复制整单操作的上阶功能编号full-operator
    azzi903 – 弹出式菜单下找到action代号,选择代号,将上阶功能编号修改成full-operator
    保存,关闭azzi903,重新产生4ad
  4. azzi850 给新增的功能授权
  5. 在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

三、【整单操作】下新增【产生单据】按钮

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

  1. 复制 oozyuc表 为 oozzuc表
  2. 在 cooi666 新增一个按钮【产生单据】
  3. 当单据状态为已审核时,点击【产生单据】,将此笔数据库产生到 oozzuc表
  4. 规格中 – 右边点击【新增项目】,在左边 Action设定 修改 Action代号,说明;然后上传画面
  5. 设计器 – 下载程序 – 检查产生Action代号,然后上传程序
  6. azzi903 将Action从 弹出式菜单 移到 整单操作
    azzi903 – 查询 cooi666,双击整单操作,复制整单操作的上阶功能编号full-operator
    azzi903 – 弹出式菜单下找到action代号,选择代号,将上阶功能编号修改成full-operator
    保存,关闭azzi903,重新产生4ad
  7. azzi850 给新增的功能授权
  8. 在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,参数产生完成。
在这里插入图片描述

查询方案添加一列

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_43734095/article/details/112986929

转载请注明:赫非域 » 【实习之T100开发】程序开发之添加修改功能