javascript - OnSave Javascript for CRM 2011 报价产品

标签 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!这意味着,它根据字段的先前值计算税!

最佳答案

您遇到此问题是因为您在 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/

相关文章:

javascript - 显示ngCloak的效果

javascript - 如何重新加载 iframe 的父级而不重新加载它

javascript - JavaScript 中的公共(public)/私有(private)成员

dynamics-crm-2011 - 如何在 Dynamics CRM 2011 中隐藏部分

dynamics-crm-2011 - 如何在本地 Dynamics CRM 2011 中恢复已删除的记录

c# - 提供的 URI 方案 'https' 无效;调用网络服务时预期为 'http'

javascript - 如何加快在 React 中显示来自后端的图像的过程 (Django Rest)

javascript - 为什么 Javascript 中的变量赋值运算符优先级会以其他方式工作

c# - 通过 CRM 表单发送 onSave 电子邮件

c# - 使用 fakexrmeasy 创建链接数据