0
点赞
收藏
分享

微信扫一扫

【实习之T100开发】T100 单档程序开发

野见 2022-04-27 阅读 36

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表

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

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 查看要加栏位的作业对应的表


利用 azzi993 查询 aoos010,可知它对应的表是:ooaa_t

在这里插入图片描述

[](()2、azzi990 按需求添加一笔参数数据


记住它的参数编号 E-COMC0009(自动生成的)

在这里插入图片描述

[](()3、azzi993 设置作业参数


![在这里插入图片描述](https://img-blog.csdnimg.cn/20210125184406695.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 nLmNzZG4ubmV0L3dlaXhpbl80MzczNDA5NQ==,size_1,color_FFFFFF,t_70)

此时,再次打开 aoos010,参数产生完成。

在这里插入图片描述

举报

相关推荐

0 条评论