jQuery MiniUI

标题: datagird中列的计算问题 [打印本页]

作者: zhs0110    时间: 2016-8-15 11:30:08     标题: datagird中列的计算问题

如图:
[attach]7792[/attach]
出库箱数-签收箱数=差异箱数
这个计算功能的实现,参考了版主的提示,使用了onDrawCell(e)函数,
e.cellHtml = 出库箱数-签收箱数;
但后来我发现上面这行代码计算后的差异箱数实际上是个表面的文本值,再次向版主求助后,
我添上了
e.record.差异箱数 = 出库箱数-签收箱数; //这个才是实际值

现在我想把差异箱数的值也给到箱数,但箱数这个列里添上这两行代码后,无论怎么编辑,它的文本值和实际值都变不了了,
不知道版主有啥好办法么,不胜感激!


作者: felt    时间: 2016-8-15 11:47:07

你箱数那列是怎么处理的
按道理和差异箱数分开处理是没有相互影响的
作者: zhs0110    时间: 2016-8-15 12:07:57

本帖最后由 zhs0110 于 2016-8-15 12:09 编辑
felt 发表于 2016-8-15 11:47
你箱数那列是怎么处理的
按道理和差异箱数分开处理是没有相互影响的

实际上跟差异箱数的处理是一样的,也是这两行代码
function onDrawCell(e) {
    var record = e.record;
    if(e.field=="EXP_ONE_QTY"){ //箱数
        var attribute_number7 = record.ATTRIBUTE_NUMBER7; //出库箱数
        if(attribute_number7!=null){
            var attribute_number5 = record.ATTRIBUTE_NUMBER5; //签收箱数
            if(attribute_number5!=null){
                if(attribute_number5<=attribute_number7){
                    e.cellHtml = attribute_number7-attribute_number5; //文本值
                    e.record.EXP_ONE_QTY = attribute_number7-attribute_number5; //实际值
                }
            }
        }
    }
}
箱数就这样被固定死了,无论你改成啥数字,这个列显示的也好实际的也好都是不变的。


作者: felt    时间: 2016-8-15 13:20:51

zhs0110 发表于 2016-8-15 12:07
实际上跟差异箱数的处理是一样的,也是这两行代码
function onDrawCell(e) {
    var record = e.record;

请检查每次绘制的时候计算到的数据到底是什么
作者: zhs0110    时间: 2016-8-15 14:53:45

felt 发表于 2016-8-15 13:20
请检查每次绘制的时候计算到的数据到底是什么

计算到的数据没有问题,我的意思是,如果出库箱数是8,签收箱数是4,那么通过计算,我们得到了差异箱数为4,箱数也是4,所以计算到的数据没有问题。
问题在于箱数是可编辑的列,一旦用了那两行代码,按照上面的例子,我把箱数改成3,编辑完箱数仍然会显示4,就是无论你怎么改,它都是原来那个数字。


作者: felt    时间: 2016-8-15 14:59:58

zhs0110 发表于 2016-8-15 14:53
计算到的数据没有问题,我的意思是,如果出库箱数是8,签收箱数是4,那么通过计算,我们得到了差异箱数为 ...

是,这就是你设计的问题了,既然你要自动计算,为什么还要编辑
作者: zhs0110    时间: 2016-8-15 15:06:34

felt 发表于 2016-8-15 14:59
是,这就是你设计的问题了,既然你要自动计算,为什么还要编辑

这种情况利用现有的miniui,真的没有办法解决了吗?

作者: felt    时间: 2016-8-15 15:20:06

zhs0110 发表于 2016-8-15 15:06
这种情况利用现有的miniui,真的没有办法解决了吗?

你可以只绘制
判断如果箱数没有数据,那么绘制成出库-签收
如果有数据,那么不绘制




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2