标签:collect The length end init 回滚 pup das 相对
方法一:
#此方法适用于excel导入数据到系统
#定义一个数组
DEFINE lr_err DYNAMIC ARRAY OF RECORD
line STRING,
key1 STRING,
err STRING
END RECORD
#先清空数组
CALL lr_err.clear()
IF g_success = ‘N‘ THEN
LET lr_err[li_k].line = i
LET lr_err[li_k].key1 = ls_imp.pmdj002
LET lr_err[li_k].err = ‘不允许出现重复的料号,请检查!‘ #这里加报错内容 也可以cl_getmsg(SQLCA.sqlcode,g_lang)使用系统的标准报错,azzi920维护的
LET li_k = li_k + 1
#这里可以加事务回滚,循环跳行
END IF
#完毕后,判断数组有无内容,有则通过函数展现出来,这个不要放在循环内
IF lr_err.getLength() > 0 THEN
CALL cl_show_array(base.TypeInfo.create(lr_err),cl_getmsg("lib-314",g_lang),"Line|Key1|Error")
END IF
方法二:
INITIALIZE g_errparam TO NULL
LET g_errparam.code = SQLCA.sqlcode #这里使用标准的报错代号,如果不想用标准就用‘!‘
LET g_errparam.extend = "UPDATE xmdc012,xmdc013" #补充内容
LET g_errparam.popup = FALSE #true是弹窗,false是右下角提示
CALL cl_err()
方法三:
#第三种方法与第一种功能一致,但是是系统标准的功能,而且相对于tiptop有一个较大的改善,
#就是如果函数内有cl_err的强制弹窗内容,也不会弹窗,会等所有程序跑完了再统一报错
CALL cl_err_collect_init() #启用函数前调用
#中间放第二种方法的报错方法,是不是强制弹窗无所谓,因为都不会弹窗
CALL cl_err_collect_show() #使用函数后调用
————————————————
标签:collect The length end init 回滚 pup das 相对
原文地址:https://www.cnblogs.com/sctrkb/p/12812671.html