新聞動態   News
聯係CCTV成人污下载   Contact
你的位置:首頁 > 新聞動態

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

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