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 ...
随机推荐
- oracle数据库的安装
---create group groupadd oinstallgroupadd dbagroupadd oper ------create user useradd -g oinstall -G ...
- 6-14 Inspector s Dilemma uva12118(欧拉道路)
题意:给出一个国家城市个数n 所需走过道路个数e 每条道路长t 该国家任意两个城市之间都存在唯一道路长t 要求 :找一条最短的路遍历所有所需走过的路 一开始以为是图的匹配 但是好 ...
- 20172304 实验二 《Java面向对象程序设计》 实验报告
20172304 实验二 <Java面向对象程序设计> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1723班 学生姓名:段志轩 学生学号:20172304 实验时间 ...
- Bzoj4548 小奇的糖果(链表+树状数组)
题面 Bzoj 题解 很显然,我们只需要考虑单独取线段上方的情况,对于下方的把坐标取反再做一遍即可(因为我们只关心最终的答案) 建立树状数组维护一个横坐标区间内有多少个点,维护双向链表实现查询一个点左 ...
- Initializing the FallBack certificate failed . TDSSNIClient initialization failed
安装SQL后服务不能启动,报错: 2014-03-24 14:33:10.06 spid13s Error: 17190, Severity: 16, State: 1.2014-03-24 ...
- web服务端安全之文件上传漏洞
一.文件上传漏洞的原理 由于程序代码未对用户提交的文件进行严格的分析和检查,导致攻击者可以上传可执行的代码文件,从而获取web应用的控制权限. 常见于上传功能,富文本编辑器. 二.文件上传漏洞的防御 ...
- 机器学习之路: python nltk 文本特征提取
git: https://github.com/linyi0604/MachineLearning 分别使用词袋法和nltk自然预言处理包提供的文本特征提取 from sklearn.feature_ ...
- android 后台 activity 被系统回收 保存状态
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 活动被系统回收, 要保存状态 ,用到 活动的 在保存实例时候 的 这个方法. 当系统异常 ...
- Siege(开源Web压力测试工具)——多线程编程最佳实例
在英语中,"Siege"意为围攻.包围.同时Siege也是一款使用纯C语言编写的开源WEB压测工具,适合在GNU/Linux上运行,并且具有较强的可移植性.之所以说它是多线程编程的 ...
- Curl 及 Curl的使用介绍
Curl 简介 Curl是Linux下一个很强大的http命令行工具,其功能十分强大. 1) 二话不说,先从这里开始吧! $ curl http://www.linuxidc.com 回车之后,www ...