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

QQ登录

只需一步,快速开始

查看: 5158|回复: 5

[结贴] 根据从表值计算给主表某一字段赋值问题

[复制链接]

121

主题

322

帖子

607

积分

高级会员

Rank: 4

积分
607
发表于 2017-8-29 10:05:40 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
2.png 如图整体是excel布局,下边是grid;主表1是一张表,主表1中的总面积、总工日, 其中总面积是从表即表2(面积之和计算得来的),总工日是表2的从表即表3(工作量计算而来的;grid中的数据是我通过创建视图反向生成本体查询到的结果封装到一块;并且grid数据的改变是通过windowDialog打开的窗口即新建、编辑通过windowDialog打开新的界面进行的操作如图 3.png ,所以在grid绑定的data中onValueChanged事件一直触发不到,得怎么解决




91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-8-29 11:19:31 | 显示全部楼层
在data的onDataChange中判断type是new、delete、refresh、valueChanged的时候获取值计算
data.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

121

主题

322

帖子

607

积分

高级会员

Rank: 4

积分
607
 楼主| 发表于 2017-8-29 14:03:06 | 显示全部楼层
jishuang 发表于 2017-8-29 11:19
在data的onDataChange中判断type是new、delete、refresh、valueChanged的时候获取值计算
...

我没判断type,因为不管是我从新建还是编辑打开的窗口关闭窗口后这里得到的type都是slaveDataChanged、refresh,直接用的        Model.prototype.dataDetailDataChange = function(event){
        alert(event.type);
                var mainData = this.comp("mainData");
                var dataDetail =  this.comp("dataDetail");
                var dataDetail2 = this.comp("dataDetail2");
                var totalArea = 0;
                var totalWorkday = 0;
                var fIDs = [];
                var fID ="";
                dataDetail.each(function(param){
                        var tempID = param.row.val("MASTERID");
                        fIDs.push(tempID);
                        var fWorkday =  param.row.val("FWORKDAY");
                        totalWorkday += fWorkday;
                });
                for(var index=0;index < fIDs.length;index++){
                        fID += "'"+fIDs[index]+"'";
                        if(index != fIDs.length - 1){
                                        fID += ",";
                        }
                }
                if(fID){
                        dataDetail2.filters.setFilter("filter", "CBMP_AchievementInfo in ("+fID+")");
                        dataDetail2.refreshData();
                        dataDetail2.each(function(param){
                                var fArea =  param.row.val("fArea");
                                totalArea += fArea;
                        });
                }
                mainData.setValue("fTotalDay",totalWorkday);
                mainData.setValue("fTotalArea",totalArea);
        };
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-8-29 15:37:47 | 显示全部楼层
不判断就是只有触发了这个事件就会里面的代码
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

121

主题

322

帖子

607

积分

高级会员

Rank: 4

积分
607
 楼主| 发表于 2017-8-29 16:05:15 | 显示全部楼层
jishuang 发表于 2017-8-29 15:37
不判断就是只有触发了这个事件就会里面的代码

加判断也没用啊type一直都是slaveDataChanged、refresh这两个
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36178
发表于 2017-8-29 16:53:16 | 显示全部楼层
在从data的onDataChanged事件中
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 01:54 , Processed in 0.109526 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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