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

QQ登录

只需一步,快速开始

查看: 12221|回复: 36

[处理中3] grid的计算

[复制链接]

93

主题

313

帖子

630

积分

高级会员

Rank: 4

积分
630
QQ
发表于 2019-2-15 18:36:57 | 显示全部楼层 |阅读模式
我想实现这个功能,输入子级的得分后,父级的得分可以自动计算, 983394F8-EB13-4125-AA85-678BE74B483D.png


代码如下:
Model.prototype.getValue = function(row) {
                debugger;
                var markSheetID = row.val("VIEW_TSP_CHECK_SCORE");// 通过传的row获取fName的值
                var SCORE = row.val("SCORE");// 通过传的row获取fName的值
                var TSP_CHECK_MARKSHEET = this.comp("TSP_CHECK_MARKSHEET");
                TSP_CHECK_MARKSHEET.setFilter("FL1", "PARENTID = '"+markSheetID+"'");
                TSP_CHECK_MARKSHEET.refreshData();
                var i = TSP_CHECK_MARKSHEET .getCount();
                var score = 0;
                TSP_CHECK_MARKSHEET.each(function(params) {
                        var SCORE = params.row.val("SCORE");
                        if (SCORE === undefined) {
                                SCORE = 0;
                        }
                        score = score + SCORE;
                });
                if(i>0 ){
                       
                        return score;
                }else{
                        return SCORE;
                }
                       
        };

然后在data组件中的score列中写了这个计算表达式:$model.getValue($row)

没有出现我想实现的效果,想问下问题可能出在哪

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-2-18 08:57:26 | 显示全部楼层
调试js方法执行了吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

93

主题

313

帖子

630

积分

高级会员

Rank: 4

积分
630
QQ
 楼主| 发表于 2019-2-18 09:08:01 | 显示全部楼层
jishuang 发表于 2019-2-18 08:57
调试js方法执行了吗?

好像没有进去,什么时候会调用这个方法啊
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-2-18 09:23:22 | 显示全部楼层
设置的data的计算规则,data上的数据改变就应该会触发,确认规则设置的正确吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

93

主题

313

帖子

630

积分

高级会员

Rank: 4

积分
630
QQ
 楼主| 发表于 2019-2-18 09:26:22 | 显示全部楼层
jishuang 发表于 2019-2-18 09:23
设置的data的计算规则,data上的数据改变就应该会触发,确认规则设置的正确吗? ...

这样设置的应该没问题把 090CE381-D8B0-4e8a-AB05-A68914CE30E9.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-2-18 10:00:29 | 显示全部楼层
在data的onValueChanged事件中去处理
规则中计算规则不推荐用当前关系值去修改当前关系的值
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

93

主题

313

帖子

630

积分

高级会员

Rank: 4

积分
630
QQ
 楼主| 发表于 2019-2-18 11:18:38 | 显示全部楼层
jishuang 发表于 2019-2-18 10:00
在data的onValueChanged事件中去处理
规则中计算规则不推荐用当前关系值去修改当前关系的值 ...

写了这个事件后,改变了值后代码无法进来Model.prototype.TSP_CHECK_SCOREValueChanged = function(event){
                debugger;
                var TSP_CHECK_SCORE = this.comp("TSP_CHECK_SCORE");
                var markSheetID = TSP_CHECK_SCORE.getValue("VIEW_TSP_CHECK_SCORE");
                var PARENTID = TSP_CHECK_SCORE.getValue("PARENTID");
                var SCORE = TSP_CHECK_SCORE.getValue("SCORE");// 通过传的row获取fName的值
                var scoreData = this.comp("scoreData");
                scoreData.setFilter("FL1", "PARENTID = '"+PARENTID+"'");
                scoreData.refreshData();
                var score = 0;
                scoreData.each(function(params) {
                        var SCORE = params.row.val("SCORE");
                        if (SCORE === undefined) {
                                SCORE = 0;
                        }
                        score = score + SCORE;
                });
                scoreData.setValue("SCORE",score);
               
        };

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-2-18 11:44:11 | 显示全部楼层
data的改变事件都没执行,说明data上的数据没有改变,确认修改的是这个data上的关系的值吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

93

主题

313

帖子

630

积分

高级会员

Rank: 4

积分
630
QQ
 楼主| 发表于 2019-2-18 12:00:19 | 显示全部楼层
wei 发表于 2019-2-18 11:18
写了这个事件后,改变了值后代码无法进来Model.prototype.TSP_CHECK_SCOREValueChanged = function(event ...

关系没错的 就是在这个页面输入一个值后没有触发事件,点保存也不触发值改变事件 2951E91E-F095-4694-B138-E7BBE5004683.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2019-2-18 13:30:01 | 显示全部楼层
保存本来就不会触发这个事件
这个事件是数据改变触发的,修改其他的关系值看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 16:45 , Processed in 0.074420 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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