2013-04-06 77 views
0

我在報價產品上有一個腳本,我希望在保存表單時更新稅額。但是,它確實根據以前的字段值更新了稅收。該腳本如下:OnSave Javascript for CRM 2011報價產品

function tax() 
{ 
    var val0 = Xrm.Page.getAttribute("baseamount").getValue(); 
    var val1 = Xrm.Page.getAttribute("manualdiscountamount").getValue(); 
    val2 = val0 - val1; 
    val2 = val2 * 0.05; 
    Xrm.Page.getAttribute("tax").setValue(val2); 
} 

例如,如果基量爲10和手動折扣1上創建報價的產品,那麼稅務更新爲0。如果保存後,我換基等於20,手動折扣爲1,則稅率更新爲0.45!這意味着,它會根據以前的字段值來計算稅額!

回答

3

您正面臨此問題,因爲您在CRM更新它之前獲得baseamount值。

baseamout形式後,計算被保存,所以你需要通過手,因爲這簡單的例子來計算值:

function tax() 
{ 
    var priceperunit = Xrm.Page.getAttribute("priceperunit").getValue(); 
    var quantity = Xrm.Page.getAttribute("quantity").getValue(); 
    var val0 = priceperunit * quantity; 
    var val1 = Xrm.Page.getAttribute("manualdiscountamount").getValue(); 
    val2 = val0 - val1; 
    val2 = val2 * 0.05; 
    Xrm.Page.getAttribute("tax").setValue(val2); 
} 

講究,有也是數量折扣領域,該產品可也寫入。

+0

批量折扣也是如此。它是在保存操作後計算的,因此我無法使用它! – 2013-04-06 09:09:35

+0

我特意針對批量折扣字段,有些公司不使用內置折扣列表,因此更容易定製。如果他們使用折扣列表,我會首先嚐試使用插件,如果他們想要實現大量定製,需要「實時」值,包括更改默認保存按鈕和保存重新加載表單機制。 – 2013-04-06 09:26:20