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

QQ登录

只需一步,快速开始

查看: 3776|回复: 5

[结贴] justep.xbl("dataMain").getCurrentID()取得是行数,而不是选中行的fID

[复制链接]

10

主题

37

帖子

107

积分

初级会员

Rank: 2

积分
107
发表于 2017-3-13 19:03:45 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: MS SQLServer 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: Chrome
画面需要用到group by后的数据,我自己重写了queryAction这个方法,但是dataMain.saveData(); 数据保存时报【编码: JUSTEP150186可能的原因: 数据被其他用户修改了; 数据被其他用户删除了】这个错误,后来发现getCurrentID()取得不对,不是fID,而是选中的行数,请问这怎么解决啊?我自己写的queryAction少取东西了吗?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-3-14 10:30:41 | 显示全部楼层
重写的queryAction发一下看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

10

主题

37

帖子

107

积分

初级会员

Rank: 2

积分
107
 楼主| 发表于 2017-3-14 12:16:38 | 显示全部楼层
        public static Table equeryWM_InGoodsRegister(String concept,String select,String from,String aggregate,String dataModel,String fnModel,String condition,List range,Boolean distinct,String idColumn,String filter,Integer limit,Integer offset,String columns,String orderBy,String aggregateColumns,Map variables){
                Map<String, String> map = new HashMap<String, String>();
                String sqlFilter ="1 = 1";
                if (filter != null && !"".equals(filter)) {
                        sqlFilter = filter;
                }
                String sql="SELECT WM_InGoodsRegister AS fID, WM_InGoodsRegister.version AS version, WM_InGoodsRegister.fBizState AS fBizState, WM_InGoodsRegister.fBizNO AS fBizNO, WM_InGoodsRegister.fBizDate AS fBizDate, WM_InGoodsRegister.fNoticeCode AS fNoticeCode, WM_InGoodsRegister.fFactoryCode AS fFactoryCode, WM_InGoodsRegister.fFactoryName AS fFactoryName, WM_InGoodsRegister.fWHCode AS fWHCode, WM_InGoodsRegister.fConMan AS fConMan, WM_InGoodsRegister.fInDate AS fInDate, WM_InGoodsRegister.fInNumber AS fInNumber, WM_InGoodsRegister.fBreakNumber AS fBreakNumber, WM_InGoodsRegister.fNOTE AS fNOTE, WM_InGoodsRegister.fATTM AS fATTM, WM_InGoodsRegister.fCreatePerson AS fCreatePerson, WM_InGoodsRegister.fCreatePersonFID AS fCreatePersonFID, WM_InGoodsRegister.fCreatePersonID AS fCreatePersonID, WM_InGoodsRegister.fCreateTime AS fCreateTime, WM_InGoodsRegister.fSM_PSN AS fSM_PSN, WM_InGoodsRegister.fSM_PSNID AS fSM_PSNID, WM_InGoodsRegister.fSM_DT AS fSM_DT, WM_InGoodsRegister.fRV_PSN AS fRV_PSN, WM_InGoodsRegister.fRV_PSNID AS fRV_PSNID, WM_InGoodsRegister.fRV_DT AS fRV_DT, WM_InGoodsRegister.fRevisePerson AS fRevisePerson, WM_InGoodsRegister.fRevisePersonID AS fRevisePersonID, WM_InGoodsRegister.fReviseDate AS fReviseDate, WM_InGoodsRegister.fDEL_RSN AS fDEL_RSN, WM_SUM.fSUM AS fSUM FROM WM_InGoodsRegister WM_InGoodsRegister optional JOIN (SELECT WM_InNoticeMaster.fBizNO as bizNo, b.fMasterID, SUM (b.fNumber) AS fSUM FROM WM_InNoticeDetail b optional JOIN WM_InNoticeMaster WM_InNoticeMaster on b.fMasterID = WM_InNoticeMaster GROUP BY WM_InNoticeMaster.fBizNO, b.fMasterID) WM_SUM ON WM_SUM.bizNo = WM_InGoodsRegister.fNoticeCode WHERE " + sqlFilter + " ORDER BY WM_InGoodsRegister.fBizNO desc";
                map.put("MSSQL", sql);
                System.out.println(sql);
        //计算出总记录数
        int cnt = 0;
        Table tCount = KSQL.select("SELECT count(WM_InGoodsRegister.fNoticeCode) AS cnt FROM WM_InGoodsRegister WM_InGoodsRegister optional JOIN (SELECT c.fBizNO, b.fMasterID, SUM (b.fNumber) AS fSUM FROM WM_InNoticeDetail b optional JOIN WM_InNoticeMaster c on b.fMasterID = c GROUP BY c.fBizNO, b.fMasterID) WM_SUM ON WM_SUM.fBizNO = WM_InGoodsRegister.fNoticeCode WHERE " + sqlFilter, variables, dataModel, null);
        Iterator<Row> it1 = tCount.iterator();
        if(it1.hasNext()){
            Row r = it1.next();
                cnt = r.getInt("cnt");
        }
        //加上offset和limit实现分页
        Table table = KSQL.select(sql + " limit "+Integer.toString(offset)+","+Integer.toString(limit), variables, dataModel, null);
        //设置总记录数
        table.getProperties().put(Table.PROP_DB_COUNT, cnt);
        return table;
        }


本来是取得*,后来一直出错,我就把所有项目都取了
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-3-14 13:31:20 | 显示全部楼层
idColumn设置的正确吗?


table.getProperties().put(Table.PROP_NAME_ROWID, "主键关系或者概念别名");设置一下主键看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

10

主题

37

帖子

107

积分

初级会员

Rank: 2

积分
107
 楼主| 发表于 2017-3-14 14:24:00 | 显示全部楼层
好了,解决了,多谢,可以结贴了
回复 支持 反对

使用道具 举报

12

主题

43

帖子

84

积分

初级会员

Rank: 2

积分
84
QQ
发表于 2017-3-23 12:03:07 | 显示全部楼层
xbl如何引用啊?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 21:11 , Processed in 0.058552 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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