起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5049|回复: 2

[结贴] AfterSave process执行后事件执行存储过程返回值问题

[复制链接]

43

主题

149

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
QQ
发表于 2018-9-18 15:45:31 | 显示全部楼层 |阅读模式
三张表:JZTC_SCRWWTD,JCTC_SCRWWTDWJ,JZTC_SCRWWTJWJMX。JCTC_SCRWWTDWJ.WTDZBID = JZTC_SCRWWTD.FID,JZTC_SCRWWTJWJMX.WTDID = JZTC_SCRWWTD.FID.1、前端界面首先维护JZTC_SCRWWTD和JCTC_SCRWWTDWJ的数据,主子表关系。
2、点击保存按钮,调用JCTC_SCRWWTDWJ的AfterSave prcess执行后事件,在该事件中执行存储过程根据相关条件将数据插入到JZTC_SCRWWTJWJMX表中,同时在前端页面将JZTC_SCRWWTJWJMX刷新出来,刷新JZTC_SCRWWTJWJMX数据卸载mainData的AfterSave事件中。
存在问题:
点击保存后,JZTC_SCRWWTJWJMX的数据没有同步刷新到前端页面。原因可能是点击保存后JZTC_SCRWWTD和JCTC_SCRWWTDWJ的数据保存了,存储过程数据还没执行完,所以JZTC_SCRWWTJWJMX的数据没有刷新出来。
想实现:在AfterSave prcess执行后事件中执行存储过程结束后返回给前端mainData的AfterSave一个值,通过这个返回值判断刷新JZTC_SCRWWTJWJMX数据。
AfterSave prcess执行后事件中执行存储过程代码如下:
public static void mainActivityAfterSaveJZTC_SCRWWTDWJAction()  throws Exception {
                Table table = (Table)ContextHelper.getActionContext().getParameter("table");
                //新增
                Iterator<Row> newrows = table.iterator(com.justep.system.data.ModifyState.NEW );
//                 printTableColumns(table);
                while (newrows.hasNext()) {
                        Row row = newrows.next();
                        String lbjth = row.getString("LBJTH");
                        int hjsl = row.getDecimal("HJSL").intValue();
                        String zbid = row.getString("WTDZBID");
                        String sfqtxj = row.getString("SFQTXJ");
                        String zbwjid = row.getString("JZTC_SCRWWTDWJ");
                        //调用插入数据存储过程
                        callProduce(zbid,zbwjid, lbjth , hjsl, sfqtxj);
                       
                }
                //修改
                Iterator<Row> editrows = table.iterator(com.justep.system.data.ModifyState.EDIT );
                while (editrows.hasNext()) {
                        Row row = editrows.next();
                        String lbjth = row.getString("LBJTH");
                        int hjsl = row.getDecimal("HJSL").intValue();
                        String zbid = row.getString("WTDZBID");
                        String sfqtxj = row.getString("SFQTXJ");
                        String zbwjid = row.getString("JZTC_SCRWWTDWJ");
//                        System.out.printf("lbjth = %s, hjsl = %d, zbid = %s", lbjth, hjsl, zbid);
                        //1、首先调用删除
                        callDeleteProduce(zbwjid);
                        //2、调用插入数据存储过程
                        callProduce(zbid,zbwjid, lbjth , hjsl, sfqtxj);
                        System.out.println("执行存储过程");
                       
                }
        }

//插入数据存储过程
        public static Boolean callProduce(String zbid,String zbwjid, String lbjth, int sl, String qt) throws Exception {
                java.sql.Connection conn = ModelUtils.getConnectionInTransaction("/tcgl/scrwwtd/data");
                // 创建一个 CallableStatement对象来调用数据库存储过程
                java.sql.CallableStatement stat = conn.prepareCall("{call up_getpdm_bom_scrwwtd(?, ?, ?, ?, ?)}");
                try {
                        // 设置IN参数,参数以顺序匹配
                        stat.setString(1, zbid);
                        stat.setString(2, zbwjid);
                        stat.setString(3, lbjth);
                        stat.setInt(4, sl);
                        stat.setString(5, qt);
                        // 执行存储过程
                        stat.execute();
                        return true;
                } catch(Exception e) {
                        e.printStackTrace();
                        return false;
                } finally {
                        stat.close();
                }
        }


91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36198
发表于 2018-9-18 16:22:12 | 显示全部楼层
保存事件中没有自己返回值的接口
onSaveCommit中调用刷新
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

43

主题

149

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
QQ
 楼主| 发表于 2018-9-18 16:36:08 | 显示全部楼层
好的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-8-27 18:26 , Processed in 0.053707 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表