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
