13_T100 P处理开发(按查询条件批量审核单据)

1、azzi900注册程序编号

2、azzi910注册作业编号

3、T100设计器 - 规格 - 下载规格 - 同时签出规格和程序

4、T100设计器 - 常用工具 - r.a 画面产生器 - 产生规格

P批次作业是个空框架,直接保存底稿,生成画面即可

5、T100设计器 - 规格 - 下载规格

6、T100设计器 - 档案 - 开启档案,修改规

CONSTRUCT与INPUT区别:input不会自动组到g_master.wc,常用来做额外的条件判断;construct会组到g_master.wc里

7、T100设计器 - 程序 - 下载程序,修改程序(相关开窗及校验逻辑)

8、按查询条件批量审批

PRIVATE FUNCTION coop801_conf(p_arg1)
   DEFINE p_arg1     STRING
   DEFINE l_sql      STRING
   DEFINE l_itsmuc   DYNAMIC ARRAY OF RECORD
      itsmucdocno LIKE itsmuc_t.itsmucdocno,
      itsmucstus  LIKE itsmuc_t.itsmucstus
   END RECORD
   DEFINE l_ac    LIKE type_t.num5
   DEFINE l_n     LIKE type_t.num5
   DEFINE l_success LIKE type_t.num5
   
   CALL s_transaction_begin() #开启事务
   CALL l_itsmuc.clear()
      
   LET l_success = TRUE
   LET l_ac = 1
   LET l_sql = "SELECT itsmucdocno,itsmucstus FROM itsmuc_t WHERE itsmucent=",g_enterprise,
               " AND ", p_arg1
               
   PREPARE coop801_pre  FROM l_sql
   DECLARE coop801_cs   CURSOR FOR coop801_pre
   FOREACH coop801_cs   INTO l_itsmuc[l_ac].itsmucdocno, l_itsmuc[l_ac].itsmucstus
      IF SQLCA.sqlcode THEN
         INITIALIZE g_errparam TO NULL 
         LET g_errparam.extend = "FOREACH:",SQLERRMESSAGE
         LET g_errparam.code   = SQLCA.SQLCODE 
         LET g_errparam.popup  = TRUE 
         CALL cl_err()
         EXIT FOREACH
      END IF
      #判断状态码是否为N, 如果不为N则不执行这笔
      IF l_itsmuc[l_ac].itsmucstus <> 'N' THEN
         CONTINUE FOREACH
      END IF
      #判断此笔单号对应的单身有无数据,如果对应的这个单身没有数据需要报错
      LET l_n = 0
      SELECT COUNT(*) INTO l_n FROM itsxuc_t
      WHERE itsxucent = g_enterprise
      AND itsxucdocno = l_itsmuc[l_ac].itsmucdocno
      IF cl_null(l_n) THEN LET l_n = 0 END IF
      IF l_n = 0 THEN
         CONTINUE FOREACH
      END IF
      UPDATE itsmuc_t SET itsmucstus = 'Y'
      WHERE itsmucent = g_enterprise
      AND itsmucdocno = l_itsmuc[l_ac].itsmucdocno
      IF SQLCA.sqlcode THEN
         INITIALIZE g_errparam TO NULL 
         LET g_errparam.extend = "FOREACH:",SQLERRMESSAGE
         LET g_errparam.code   = SQLCA.SQLCODE 
         LET g_errparam.popup  = TRUE 
         CALL cl_err()
         LET l_success = FALSE
         EXIT FOREACH
      END IF
   END FOREACH
   
   IF NOT l_success THEN
      CALL s_transaction_end('N', '0')
      INITIALIZE g_errparam TO NULL 
      LET g_errparam.extend = ""
      LET g_errparam.code   = '' #执行错误的代码
      LET g_errparam.popup  = TRUE 
      CALL cl_err()
   ELSE    
      CALL s_transaction_end('Y', '0')
      LET g_errparam.extend = ""
      LET g_errparam.code   = '' #执行成功的代码
      LET g_errparam.popup  = TRUE 
      CALL cl_err()
   END IF
END FUNCTION

 

posted @ 2022-05-29 23:11  滔天蟹  阅读(294)  评论(0)    收藏  举报