!謝謝!
/******************************************************** 主要用於 明細表格 欄位間的計算 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 ******************************************************/