請求書の項目の金額を追加/削除するエディター グリッド パネル (フォーム内) があります。グリッドからの項目の金額は、グリッドの外側でフォームの内側にある [Amount due] フィールドに追加されます。'Amount due' フィールドに別の場所 (グリッドではない) からの金額がある可能性があります。グリッドから「Amount due」フィールドにいくつかの金額を加算および減算できます。ただし、[送信] ボタンを 2 回押すと (1 回だけのはずだったのに)、[請求額] がゼロにクリアされます。[送信] ボタンを誤って 2 回押したときに、[請求額] フィールドがクリアされないようにするにはどうすればよいですか? 私のコードで何を変更する必要がありますか? 助けてくれてありがとう。
var iLineItemTotalHold = 0;{
text: 'Submit',
tooltip:'Submit the line item',
handler: function(){
iLineItemGrid.stopEditing();
// Will this code save changes to the database?
//iLineItemGrid.getStore().commitChanges();
iLineItemStore.commitChanges();
// What I want done here is when the amount field in the grid is saved it
// updates the 'Amount Due' field (outside of the grid) in the form.
//Does this code update the Amount Due field in the form?
var iAmountTotalForLineItems = 0;
var iAmountInDueField = Ext.getCmp('iAmountDue').value;
var tempTotal = 0;
var result = 0;
iLineItemStore.each(function(addAmount){
iAmountTotalForLineItems += addAmount.get('i_line_item_amt');
});
alert('1 iAmountInDueField: ' + iAmountInDueField +' iLineItemTotalHold: '+iLineItemTotalHold + ' iAmountTotalForLineItems: '+ iAmountTotalForLineItems);
if (iLineItemTotalHold > iAmountTotalForLineItems ){
alert ('if');
tempTotal = iLineItemTotalHold - iAmountTotalForLineItems;
result = iAmountInDueField - tempTotal;
alert('two: '+result+' = '+iAmountInDueField+' + '+tempTotal );
}
else if (iLineItemTotalHold < iAmountTotalForLineItems ){
alert ('if2');
tempTotal = iAmountTotalForLineItems - iLineItemTotalHold;
result = iAmountInDueField + tempTotal;
alert('3: '+result+' = '+iAmountInDueField+' - '+tempTotal );
}
iLineItemTotalHold = iAmountTotalForLineItems;
Ext.getCmp('iAmountDue').setValue(result);
},
scope:this
}