最新消息:本站持续更新中,请注意添加收藏夹。搜索关键词时,多换一个同义词。比如要搜索界面,可以尝试页面,画面,PER档等词汇。善于搜索,将大大提高你的查找效率。

【实习之T100开发】T100 P处理开发流程

T100 ERP bron1984 2200浏览

很多步骤前面做过很多次了,就写的很省略,具体可以参见:

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处理开发流程