轉載,至高吳上(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); // 給 單價 賦值spa
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); // 給 金額 賦值blog
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; // 折扣額 值get
$(discountEdt.target).numberbox("setValue",discountValue); // 折扣額 賦值
}
/******************************************************** 主要用於 明細表格 字段間的計算 End ******************************************************/產品