【实习之T100开发】T100程序功能代码积累

文章详细描述了一个数据库操作函数cooi666_modify_sfz,涉及错误处理、游标操作、字段验证、事务提交及状态管理,包括对未审核、无效和已审核状态的特定行为。函数还展示了如何在开窗设计中传递参数和处理单据别参照表号。
摘要由CSDN通过智能技术生成

INITIALIZE g_errparam TO NULL

LET g_errparam.extend = “”

LET g_errparam.code = “coo-00667”

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

[已审核]和[无效] 状态下无法修改

=================&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值