我在报价产品上有一个脚本,我想在保存表单时更新税值。但是,它确实根据字段的先前值更新了税收。脚本如下:
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!这意味着,它根据字段的先前值计算税!
最佳答案
您遇到此问题是因为您在 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);
}
注意还有批量折扣字段,产品也可以写入。
关于javascript - OnSave Javascript for CRM 2011 报价产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15848431/