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