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 ...
随机推荐
- python 判断字符编码
一般情况下,需要加这个: import sys reload(sys) sys.setdefaultencoding('utf-8') 打开其他文件编码用codecs.open 读 下面的代码读取了文 ...
- Gitlab管理用户、组、权限(二)
一. 保护主要分支 保护某个分支,不让项目中其它的成员进行改变里面的内容,和不允许他们进行和保护的分支进行合并.当某个分支设置为保护的时候,那么拥有开者者权限或以下的权限都会受到影响. 执行步骤: 1 ...
- tp5总结(二)
1.简化路由[一方面可以更好的让搜索引擎抓取:另一方面简化路由,利于记忆] 1-1.在[public/]下面创建admin.php 复制index.php 然后绑定前后台模块define('BIND_ ...
- thinkphp getField()获取一列或一个数据
在开发中经常要获取一个数据的情况,thinkphp中有一个getField()方法可以解决这个问题. 获取一个数据 1 2 $user = M('demo'); $data = $user->g ...
- js javascript 实现多线程
在讲之前,大家都知道js是基于单线程的,而这个线程就是浏览器的js引擎. 首先来看一下大家用的浏览器都具有那些线程吧. 假如我们要执行一些耗时的操作,比如加载一张很大的图片,我们可能需要一个进度条来让 ...
- HashMap+双向链表手写LRU缓存算法/页面置换算法
import java.util.Hashtable; class DLinkedList { String key; //键 int value; //值 DLinkedList pre; //双向 ...
- react篇章-React State(状态)-数据自顶向下流动
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- CentOS7启动流程
同样我也找了一张CentOS7的启动流程图. 第一步.硬件启动阶段 这一步和CentOS6差不多,详细请看CentOS6启动流程(含详细流程图) 第二步.GRUB2引导阶段 从这一步开始,CentOS ...
- [CC-CHEFINV]Chef and Swaps
[CC-CHEFINV]Chef and Swaps 题目大意: 长度为\(n(n\le2\times10^5)\)的数列,\(q(q\le2\times10^5)\)次询问,每次问交换\(A_x\) ...
- 【BZOJ-1194】潘多拉的盒子 拓扑排序 + DP
1194: [HNOI2006]潘多拉的盒子 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 456 Solved: 215[Submit][Stat ...