【实习之T100开发(2),2021新一波程序员跳槽季

  #单据必须是审核状态才能执行这个功能

  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"

     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

                  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值