转载,至高吴上(Alfa.wu)

!谢谢!

/******************************************************** 主要用于 明细表格 字段间的计算 Start ******************************************************/
/**
* 将 bindGridEvent() 函数 放在 明细表格,新增行 或 编辑 行事件之后调用即可,由于 每个业务表单的字段名称,及算法不一致,因此仅在单个模块中实现,其他模块需要可复制此代码进行修改
* @author WUYF
* @date 2014-03-22
*/

/**
* 绑定 表格 事件
* @author WUYF
*/
function bindGridEvent()
{
try
{
var objGrid = $("#customerStock"); // 表格对象
var invQtyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invQty'}); // 数量
var invSaleCostEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invSaleCost'}); // 产品单价
var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象
var depositEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'deposit'}); // 折扣率对象
var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'invMoney'}); // 金额对象

// 数量 绑定 离开事件
$(invQtyEdt.target).bind("blur",function(){
calcMoney(); // 根据 数量或单价变更后计算 金额
});

// 单价 绑定 离开事件
$(invSaleCostEdt.target).bind("blur",function(){
calcMoney(); // 根据 数量或单价变更后计算 金额
});

// 折扣额 绑定 离开事件
$(discountEdt.target).bind("blur",function(){
calcDiscount(); // 根据 折扣额变更后 计算 折扣率
});

// 折扣率 绑定离开事件
$(depositEdt.target).bind("blur",function(){
calcDeposit(); // 根据 折扣率变更后 计算 折扣额
});

// 金额 绑定离开事件
$(invMoneyEdt.target).bind("blur",function(){
calcMoneyChange(); // 金额变更 后 重新计算 单价,折扣额,折扣率
});

}
catch(e)
{
alert(e);
}
}

/**
* 金额变更 后 重新计算 单价,折扣额,折扣率
*/
function calcMoneyChange()
{
var objGrid = $("#customerStock"); // 表格对象
var invQtyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invQty'}); // 数量对象
var invSaleCostEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invSaleCost'}); // 单价对象
var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'invMoney'}); // 金额对象
var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象

var invQtyValue = $(invQtyEdt.target).val(); // 数量 值
var invMoneyValue = $(invMoneyEdt.target).val(); // 金额 值
var invSaleCostValue = invMoneyValue / (invQtyValue*1.0); // 单价 值
var discountValue = $(discountEdt.target).val(); // 折扣额 值

$(invSaleCostEdt.target).numberbox("setValue",invSaleCostValue); // 给 单价 赋值

if( discountValue == 0){
$(discountEdt.target).numberbox("setValue",invMoneyValue); // 给 折扣额 赋值
}
calcDiscount(); // 根据 折扣额 计算 折扣率

}

/**
* 根据 数量或单价变更后计算 金额
* @author WUYF
*/
function calcMoney()
{
var objGrid = $("#customerStock"); // 表格对象
var invQtyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invQty'}); // 数量对象
var invSaleCostEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invSaleCost'}); // 单价对象
var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'invMoney'}); // 金额对象
var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象

var invQtyValue = $(invQtyEdt.target).val(); // 数量 值
var invSaleCostValue = $(invSaleCostEdt.target).val(); // 单价 值
var invMoneyValue = invQtyValue * invSaleCostValue; // 金额 值
var discountValue = $(discountEdt.target).val(); // 折扣额 值

$(invMoneyEdt.target).numberbox("setValue",invMoneyValue); // 给 金额 赋值

if( discountValue == 0){
$(discountEdt.target).numberbox("setValue",invMoneyValue); // 给折扣额 赋值
calcDiscount();
}
else{
calcDiscount();
}

}

/**
* 根据 折扣额变更后 计算 折扣率
* @author WUYF
*/
function calcDiscount(){
var objGrid = $("#customerStock"); // 表格对象
var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invMoney'}); // 金额对象
var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象
var depositEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'deposit'}); // 折扣率对象

var invMoneyValue = $(invMoneyEdt.target).val(); // 金额值
var discountValue = $(discountEdt.target).val(); // 折扣额 值
var depositValue = discountValue / (invMoneyValue * 1.0); // 折扣率 值

$(depositEdt.target).numberbox("setValue",depositValue); // 给折扣率 赋值
}

/**
* 根据 折扣率变更后 计算 折扣额
* @author WUYF
*/
function calcDeposit(){
var objGrid = $("#customerStock"); // 表格对象
var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invMoney'}); // 金额对象
var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象
var depositEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'deposit'}); // 折扣率对象

var invMoneyValue = $(invMoneyEdt.target).val(); // 金额值
var depositValue = $(depositEdt.target).val(); // 折扣率 值
var discountValue = invMoneyValue * depositValue; // 折扣额 值

$(discountEdt.target).numberbox("setValue",discountValue); // 折扣额 赋值
}

/******************************************************** 主要用于 明细表格 字段间的计算 End ******************************************************/

easyui datagrid 计算的更多相关文章

  1. EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他

    原创 : EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他 转载,请注明出处哦!谢谢! 原创 : EasyUI datagrid 明细表格中编辑框 事件绑 ...

  2. Easyui Datagrid rownumbers行号四位、五位显示不完全的解决办法

    Easyui Datagrid rownumbers行号四位.五位显示不完全的解决办法(引) 方法一: 相信很多人在使用easyui的时候都遇到过这个问题,当我们设置成显示Rownumber的时候,你 ...

  3. Easyui Datagrid扩展fixRownumber方法 转载

    $.extend($.fn.datagrid.methods, { fixRownumber : function (jq) { return jq.each(function () { var pa ...

  4. JQuery easyUI DataGrid 创建复杂列表头(译)

    » Create column groups in DataGrid The easyui DataGrid has ability to group columns, as the followin ...

  5. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页

    系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台 实 ...

  6. 控制EasyUI DataGrid高度

    这次要说的是控制EasyUI的高度,平时我公司的项目,用EasyUI较多,然后datagrid这个组件是用的非常多的.平时我们都是固定高度,常见代码如下:             <table  ...

  7. EasyUI datagrid 日期时间格式化

    EasyUI datagrid中显示日期时间时,会显示为以下不太直观的数值: 添加以下JavaScript脚本,然后在field中添加 formatter: DateTimeFormatter 即可. ...

  8. easyui datagrid中 多表头方法总结

    easyui datagrid中怎么设置表头成多行显示呢?其实很简单,就是给datagrid的columns属性设置成多个数组就行了.下面直接看例子吧,这是一个两行表头的,按照此方法,还可以设置三行表 ...

  9. jquery easyui datagrid翻页后再查询始终从第一页开始

    在查询之前将datagrid的属性pageNumber重新设置为1 var opts = grid.datagrid('options'); opts.pageNumber = 1; easyui d ...

随机推荐

  1. Action(8):Error -27728:Step download timeout(120 seconds)has expired when downloading

    Action(8):Error -27728:Step download timeout(120 seconds)has expired when downloading   出现如下图所示对话框上的 ...

  2. HDU - 5136 2014icpc南京现场赛J 计数dp

    题目大意:给你一个树的直径k,要求每个点的度数不超过3, 问你有多少棵树满足条件. 思路:好难啊. 主要思想就是将一棵无根二叉树树划分成有根二叉树. 我们对k的分奇偶讨论: 我们定义dp[ i ] 为 ...

  3. linux下根目录扩容

    划分出一个磁盘,并将其格式化   [root@gg ~]# mkfs.ext3 /dev/sdb2    创建一个物理卷 [root@gg ~]# pvcreate /dev/sdb2    [roo ...

  4. Android Studio奇技淫巧

    No1: Ctrl+E:显示最近浏览过的文件 Ctrl+Shift+E:显示最近编辑过的文件 Ctrl+Tab:切换最近编辑过的文件 No2: 条件断点:断点右键 No3: 全局断点 这样只要碰到空指 ...

  5. Bzoj4710 分特产(容斥原理+组合数)

    题面 Bzoj 题解 考虑容斥原理,所有人都有特产的方案数等于: 至少零个人没有特产\(-\)至少一个人没有特产\(+\)至少两个人有特产\(-...\) 接着考虑其中一种情况怎么求(假设现在至少有\ ...

  6. 1005 Spell It Right (20)(20 point(s))

    problem Given a non-negative integer N, your task is to compute the sum of all the digits of N, and ...

  7. POJ 1469 COURSES 二分图最大匹配 二分图

    http://poj.org/problem?id=1469 这道题我绝壁写过但是以前没有mark过二分图最大匹配的代码mark一下. 匈牙利 O(mn) #include<cstdio> ...

  8. 【HDU】3401:Trade【单调队列优化DP】

    Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  9. hdu 3949 第k大异或组合

    题意: 给你一些数,其中任选一些数(大于等于一个),那么他们有一个异或和. 求所有这样的异或和的第k小. 我们可以将每一位看成一维,然后就是给我们n个60维的向量,求它们线性组合后得到的向量空间中,第 ...

  10. pygame系列_pygame安装

    在接下来的blog中,会有一系列的文章来介绍关于pygame的内容,所以把标题设置为pygame系列 在这篇blog中,主要描述一下我们怎样来安装pygame 可能很多人像我一样,发现了pygame是 ...