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

QQ登录

只需一步,快速开始

查看: 3176|回复: 5

[结贴] 通过人员选择对话框多选人员后,遍历Data,获取人员其他值

[复制链接]

52

主题

193

帖子

636

积分

高级会员

Rank: 4

积分
636
QQ
发表于 2013-12-13 11:50:55 | 显示全部楼层 |阅读模式
版本: X5.2.1.2000 小版本号:
数据库: MS SQLServer 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: IE8
通过人员选择对话框多选人员后,获取人员的ID号,再在人员表中进行过滤,最后对过滤出的结果进行循环取值,将取到的值添加到另外一个data中。
问题是,多选了,前两行数据是正确的,后面的数据都是为空,但是人员ID是正确取出的。下面是我的代码,帮忙看看,到底是哪出错了。
function myOnReceive(event) {
justep.XData.disableControls();
try {
  var data = justep.xbl('dHR_EP_Employee');
   
  var contion = "HR_EP_Employee in ( ";
  
  var grd = event.data;
  var len = grd.getRowsNum();
  
  if (len != 0) {
   for ( var i = 0; i < len; i++) {
    var fID = grd.getRowId(i);
    contion += "'" + fID + "',";
   }
   contion = contion.substring(0, contion.length - 1) + ")";
   //alert(contion);
   data.filters.setFilter("myFilter", contion);
   data.refreshData();
   var detailData = justep.xbl("dataMain");
   var count = data.getCount();
         
   for ( var j = 0; j < count; j++) {
    var id = data.getRowId(j);
   
                alert(id);
    var name = data.getValue("fName", id);
     //alert(name);
    var JoinJobDate=data.getValue("fJoinJobDate", id);
    var IDCard=data.getValue("fIDCard", id);
    var sex = data.getValue("fSex", id);
    var birthday = data.getValue("fBirthday", id);
    //alert('!!!');
    var orgID = data.getValue("fOrganID", id);
    //alert('12312412');
    var orgName = data.getValue("fOrganName", id);
    var deptID = data.getValue("fDeptID", id);
    var deptName = data.getValue("fDeptName", id);
    var positionID = data.getValue("fPostID", id);
    var positionName = data.getValue("fPostName", id);
   
    var FFID=data.getValue("fFID", id);
    var FFName=data.getValue("fFName", id);
   
   
    var fEMPLOYEEID = id + "";
    detailData.newData();
    detailData.setRowData(detailData.getCurrentRowId(), [ name,
      fEMPLOYEEID, sex, birthday, orgID, orgName, deptID,
      deptName, positionID, positionName,FFID,FFName,IDCard,JoinJobDate ],
      [ 'fEmployeeName',"fEmployeeID", "fSex", "fBirthday", "fOrganID",
      "fOrganName", "fDeptID", 'fDeptName', "fPostID",
      "fPostName","fFID","fFName","fIDCard","fJoinJobDate" ]);
   }
  }
} finally {
  justep.XData.enableControls();
}
}

1

主题

1222

帖子

1378

积分

金牌会员

Rank: 6Rank: 6

积分
1378
QQ
发表于 2013-12-13 13:30:15 | 显示全部楼层
count 的值获得正确吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35928
发表于 2013-12-13 13:38:36 | 显示全部楼层
这样发代码不太好看,加debugger根据看看具体到什么地方就不对了
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

52

主题

193

帖子

636

积分

高级会员

Rank: 4

积分
636
QQ
 楼主| 发表于 2013-12-13 14:46:09 | 显示全部楼层
加debugger后逐步执行,过程很奇怪,同样的代码,记录上也看不出什么问题,count也是对的。就是执行着执行者,到某条记录就开始取不到值了,id能取出来,而且是正确的,但是紧接着getValue就去不到值了。

同样的人员选择,去掉第一遍执行后有值的记录后,只选第一次没有出现的记录,再添加,就有能添加上。
回复 支持 反对

使用道具 举报

52

主题

193

帖子

636

积分

高级会员

Rank: 4

积分
636
QQ
 楼主| 发表于 2013-12-13 14:49:40 | 显示全部楼层
而且找不到规律,这次选12个人,有可能是后面三行数据不添加,下次选另外12个人,可能是后面四行不添加。
回复 支持 反对

使用道具 举报

52

主题

193

帖子

636

积分

高级会员

Rank: 4

积分
636
QQ
 楼主| 发表于 2013-12-13 15:07:20 | 显示全部楼层
问题找到了, dHR_EP_Employee所绑定的grid没有放进布局里。我在默认borderLayout1中添加了一个borderLayout-bottom1,然后把grid移进去,添加了二十个人,测试了测试,再未发现上述情况。

请结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 20:06 , Processed in 0.087177 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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