EasyUI datagrid 明細表格中編輯框 事件綁定 及靈活計算 可根據此思路 擴展其他


 


原創 : EasyUI datagrid 明細表格中編輯框 事件綁定 及靈活計算 可根據此思路 擴展其他

轉載,請注明出處哦!謝謝!

 

原創 : 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 ******************************************************/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM