很多步骤前面做过很多次了,就写的很省略,具体可以参见:
1. azzi900建立程序代号cxmp666
2. azzi910建立作业代号cxmp666
3. 设计器 – 规格 – 下载规格 – 同时签出规格和程序
4. 设计器 – 常用工具 – r.a画面产生器 – 产生规格
P批次作业是个空框架,直接保存底稿,生成画面即可。
5. 设计器 – 规格 – 下载规格
6. 设计器 – 档案 – 开启档案,修改规格
直接将之前做的 cmxq666 画面上的东西复制过来了。。
注意不要漏了查询条件,给每一个都添加上:
7. 设计器 – 程序 – 下载程序,修改程序
开窗
在 xxxx_ui_dialog 中补全开窗代码…(略,参考之前文章)
实现功能:批次将cxmt666状态变为审核
在 xxxx_process 中调用函数 cxmp666_conf(g_master.wc)
cxmt666_conf(p_arg1) 函数:
PRIVATE FUNCTION cxmp666_conf(p_arg1)
DEFINE p_arg1 STRING
DEFINE l_sql STRING
DEFINE l_xmzyuc DYNAMIC ARRAY OF RECORD
xmzyucdocno LIKE xmzyuc_t.xmzyucdocno,
xmzyucstus LIKE xmzyuc_t.xmzyucstus
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_xmzyuc.clear()
LET l_success = TRUE
LET l_ac = 1
LET l_sql = “SELECT xmzyucdocno,xmzyucstus FROM xmzyuc_t WHERE xmzyucent=”,g_enterprise,
” AND “, p_arg1
PREPARE cxmp666_pre FROM l_sql
DECLARE cxmp666_cs CURSOR FOR cxmp666_pre
FOREACH cxmp666_cs INTO l_xmzyuc[l_ac].xmzyucdocno, l_xmzyuc[l_ac].xmzyucstus
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_xmzyuc[l_ac].xmzyucstus <> ‘N’ THEN
CONTINUE FOREACH
END IF
#判断此笔单号对应的单身有无数据,如果对应的这个单身没有数据需要报错
LET l_n = 0
SELECT COUNT(*) INTO l_n FROM xmzyuc_t
WHERE xmzyucent = g_enterprise
AND xmzyucdocno = l_xmzyuc[l_ac].xmzyucdocno
IF cl_null(l_n) THEN LET l_n = 0 END IF
IF l_n = 0 THEN
CONTINUE FOREACH
END IF
UPDATE xmzyuc_t SET xmzyucstus = ‘Y’
WHERE xmzyucent = g_enterprise
AND xmzyucdocno = l_xmzyuc[l_ac].xmzyucdocno
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
总结
点击【执行】后会进入 ON ACTION batch_execute
然后又会跳到 xxxx_process,实际上在这里写逻辑
初始化基本都在 xxxx_init 中进行
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43734095/article/details/113512199
转载请注明:赫非域 » 【实习之T100开发】T100 P处理开发流程