easyui datagrid 计算
!谢谢!
/******************************************************** 主要用于 明细表格 字段间的计算 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 计算的更多相关文章
- EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他
原创 : EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他 转载,请注明出处哦!谢谢! 原创 : EasyUI datagrid 明细表格中编辑框 事件绑 ...
- Easyui Datagrid rownumbers行号四位、五位显示不完全的解决办法
Easyui Datagrid rownumbers行号四位.五位显示不完全的解决办法(引) 方法一: 相信很多人在使用easyui的时候都遇到过这个问题,当我们设置成显示Rownumber的时候,你 ...
- Easyui Datagrid扩展fixRownumber方法 转载
$.extend($.fn.datagrid.methods, { fixRownumber : function (jq) { return jq.each(function () { var pa ...
- JQuery easyUI DataGrid 创建复杂列表头(译)
» Create column groups in DataGrid The easyui DataGrid has ability to group columns, as the followin ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页
系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台 实 ...
- 控制EasyUI DataGrid高度
这次要说的是控制EasyUI的高度,平时我公司的项目,用EasyUI较多,然后datagrid这个组件是用的非常多的.平时我们都是固定高度,常见代码如下: <table ...
- EasyUI datagrid 日期时间格式化
EasyUI datagrid中显示日期时间时,会显示为以下不太直观的数值: 添加以下JavaScript脚本,然后在field中添加 formatter: DateTimeFormatter 即可. ...
- easyui datagrid中 多表头方法总结
easyui datagrid中怎么设置表头成多行显示呢?其实很简单,就是给datagrid的columns属性设置成多个数组就行了.下面直接看例子吧,这是一个两行表头的,按照此方法,还可以设置三行表 ...
- jquery easyui datagrid翻页后再查询始终从第一页开始
在查询之前将datagrid的属性pageNumber重新设置为1 var opts = grid.datagrid('options'); opts.pageNumber = 1; easyui d ...
随机推荐
- Educational Codeforces Round 9 D - Longest Subsequence
D - Longest Subsequence 思路:枚举lcm, 每个lcm的答案只能由他的因子获得,类似素数筛搞一下. #include<bits/stdc++.h> #define ...
- PHP版本--HTTP session cookie原理及应用
PHP 的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制. PHP在http 协议的头信息里发送cookie,因此 setcookie()函数必须在其它 ...
- 预备作业02 : 体会做中学(Learning By Doing)
1.你有什么技能比大多人(超过班级90%以上)更好? 如果说不算上玩玻璃球在诸如此类不登大雅之堂的技能,我想我是没有什么比大多数人更好的.我的兴趣还算广泛,但很多东西也只是学到了皮毛而已. 在我上初中 ...
- CSUOJ 1217 奇数个的那个数 位运算
Description 给定些数字,这些数中只有一个数出现了奇数次,找出这个数. Input 每组数据第一行n表示数字个数,1 <= n <= 2 ^ 18 且 n % 2 == 1. 接 ...
- 【基础知识】ASP.NET[基础二(aspx)]
1.cs可以调用aspx中的runat=server控件,aspx中也可以访问测试中定义的字段.函数,还可以编写复杂的C#代码,for等所有C#代码都可以写在aspx中(不推荐这样写): 2.把代码写 ...
- python pip 不能用报错: ImportError: No module named _internal
使用python pip安装包的时候报错: Traceback (most recent call last): File "/usr/local/bin/pip", line 7 ...
- 概率论与数理统计基础<1>:随机事件与随机变量
Part1. 随机事件 1-1.随机试验 随机试验:可以在相同条件下重复进行,每次试验的结果不止一个,事先知道所有可能的结果但不确定是哪一个的试验. 举例:重复的抛出一枚均匀的硬币就是一个随机试验,事 ...
- Android ContentObserver详解
前言: 工作中,需要开启一个线程大量的查询某个数据库值发送了变化,导致的开销很大,后来在老大的指点下,利用了ContentObserver完美的解决了该问题,感到很兴奋,做完之后自己也对Content ...
- wikioi 3130 CYD刷题(背包)
题目描述 Description 下午,CYD要刷题了,已知CYD有N题可刷,但他只有M分钟的时间,而且他的智慧值为Q,也就是说他只能做出难度小于等于Q的题目.已知每题可得积分Ai,需花费时间Bi,难 ...
- Linux中文件/文本的中文乱码解决方法
Linux显示在Windows编辑过的中文就会显示乱码是由于两个操作系统使用的编码不同所致.Linux下使用的编码是utf8,而Windows使用的是gb18030.因此,解决Linux打开txt/c ...