OnSave Javascript for CRM 2011报价产品

时间:2013-04-06 07:54:24

标签: javascript dynamics-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!意思是,它根据以前的字段值计算税额!

1 个答案:

答案 0 :(得分: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);
}

注意还有批量折扣的领域,产品也可以写入。