0

我在报价产品上有一个脚本,我想在保存表单时更新税值。但是,它确实根据字段的先前值更新了税收。脚本如下:

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!意思是,它根据字段的先前值计算税款!

4

1 回答 1

3

您正面临这个问题,因为您baseamount在 CRM 更新之前获得了价值。

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);
}

注意还有批量折扣字段,产品也可以写入。

于 2013-04-06T08:27:35.740 回答