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

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: pefi

[结贴] 如何在saveaction执行后事件中获取表id

[复制链接]

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
 楼主| 发表于 2014-12-4 15:50:51 | 显示全部楼层
jishuang 发表于 2014-12-4 15:09
import com.justep.system.data.Table;
不是import com.justep.db.model.Table;

删掉import com.justep.db.model.Table 之后没有错误了,我想获取masterdata的id传个存储过程,代码如下,麻烦指点一下,那个地方有问题?

  1. public class MakevohProcess {

  2.         public static void makevohProcessAfterSaveMAKEVOH_DAction() {
  3.                 java.sql.Connection conn;
  4.                 try{
  5.                 conn = ModelUtils.getConnectionInTransaction("/RH/RH/data");
  6.         //获得table参数
  7.         Table tab = (Table) ContextHelper.getActionContext().getParameter("masterData");
  8.         //获得所有新增的行
  9.         Iterator<Row> ros = tab.iterator(com.justep.system.data.ModifyState.NEW);
  10.         //遍历每一行
  11.         while (ros.hasNext()) {
  12.                 Row row = ros.next();
  13.                 String id = row.getString("masterData");
  14.               }
  15.                 java.sql.CallableStatement proc = conn.prepareCall("{ call proc_makvoh(?) }");
  16.                 proc.setString(1,id); //这个位置有错误
  17.                 proc.execute();
  18.          } catch (NamingException e) {                             
  19.                   e.printStackTrace();
  20.           } catch (SQLException e) {
  21.                   e.printStackTrace();
  22.           }        
  23.         }
复制代码
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-12-4 16:42:23 | 显示全部楼层
调用存储过程是标准的,论坛中也有很多案例,可以搜索看一下
有错误就发详细的错误信息
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

396

主题

2433

帖子

4863

积分

论坛元老

Rank: 8Rank: 8

积分
4863
QQ
发表于 2014-12-4 16:46:56 | 显示全部楼层
Table tab = (Table) ContextHelper.getActionContext().getParameter("masterData");里masterData换成table,String id = row.getString("masterData");里masterData换成概念名(ontology.m配置的概念名)
QQ67886387
回复 支持 反对

使用道具 举报

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
 楼主| 发表于 2014-12-4 21:23:16 | 显示全部楼层
jishuang 发表于 2014-12-4 16:42
调用存储过程是标准的,论坛中也有很多案例,可以搜索看一下
有错误就发详细的错误信息 ...

这个回复太官方了吧,存储过程调用已经研究通了,现在的问题是如何获取ID,根据好心网友的指导,一直还存在小错误,所以发代码上来,看帖子能能搞定,我发问题干嘛,另外顺便吐槽一下,很多人提问题,管理员都直接推荐看XXX贴,大部分很有帮助,有一些对于初学者很难看懂,因为那些帖子都是个例,不具通用性,说明也不详细,例如我最近在学的如何调用存储过程,如何在action后时间中获取表中数据,这些有一定难度,又提问比较多的,为什么不花点心思整理一下呢,还是推荐xxx贴
回复 支持 反对

使用道具 举报

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
 楼主| 发表于 2014-12-4 21:26:58 | 显示全部楼层
67886387 发表于 2014-12-4 16:46
Table tab = (Table) ContextHelper.getActionContext().getParameter("masterData");里masterData换成tabl ...

感谢您一直耐心答疑,修改后代码没有提示错误了,执行效果我再测试,谢谢了
回复 支持 反对

使用道具 举报

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
 楼主| 发表于 2014-12-4 21:57:02 | 显示全部楼层
67886387 发表于 2014-12-4 16:46
Table tab = (Table) ContextHelper.getActionContext().getParameter("masterData");里masterData换成tabl ...

麻烦再问一下,如果是主数据,只有一条,不用做遍历,直接取得值,怎么实现呢
回复 支持 反对

使用道具 举报

396

主题

2433

帖子

4863

积分

论坛元老

Rank: 8Rank: 8

积分
4863
QQ
发表于 2014-12-5 08:32:39 | 显示全部楼层
pefi 发表于 2014-12-4 21:57
麻烦再问一下,如果是主数据,只有一条,不用做遍历,直接取得值,怎么实现呢 ...

如果只有一条数据,就遍历一次,也是这个方法,或者去掉while条件,前提是确定只有一行数据的新增

评分

参与人数 1 +6 收起 理由
jishuang + 6 赞一个!

查看全部评分

QQ67886387
回复 支持 反对

使用道具 举报

17

主题

77

帖子

160

积分

初级会员

Rank: 2

积分
160
QQ
 楼主| 发表于 2014-12-6 09:15:15 | 显示全部楼层
67886387 发表于 2014-12-5 08:32
如果只有一条数据,就遍历一次,也是这个方法,或者去掉while条件,前提是确定只有一行数据的新增 ...

搞定,可以结贴了,再次感谢解答
回复 支持 反对

使用道具 举报

2

主题

5

帖子

42

积分

新手上路

Rank: 1

积分
42
QQ
发表于 2015-4-14 20:48:01 | 显示全部楼层
这几天正好用到这个,谢谢大家。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 02:10 , Processed in 0.064994 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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