T100的程序错误提示方法

方法一:

#此方法适用于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()  #使用函数后调用
————————————————

原文地址:https://www.cnblogs.com/sctrkb/p/12812671.html