zoukankan      html  css  js  c++  java
  • easyui datagrid 计算

    转载,至高吴上(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 ******************************************************/

  • 相关阅读:
    eclipse导入github项目
    深入理解BFC和Margin Collapse
    前端开发必备!Emmet使用手册
    Backbone.js的技巧和模式
    智能选择器和语义化的CSS
    IE常见BUG总结(持续更新)
    表格元素的完全指南(译)
    display:inline-block;在各浏览器下的问题和终极兼容办法
    float的深入剖析
    javascript正则表达式小技巧
  • 原文地址:https://www.cnblogs.com/zqmingok/p/5053242.html
Copyright © 2011-2022 走看看