Javascript和表单的多个实例

时间:2013-03-15 08:13:15

标签: javascript dynamics-crm-2011 dynamics-crm

我有一个名为product的实体。有一个叫做项目价格的字段。

现在我创造了100种产品。我想将SUM(数学运算)所有产品“商品价格”字段显示在另一个名为“总商品价格”的机会字段中。

除此之外如果我创建101产品并且它是“商品价格”,机会中的“总商品价格”字段会自动更新。

因此,我已将SUMMED添加到表单的字段中。例如,存在字段A和字段B,将字段A与3.14相乘并在字段B中显示结果。

这是守则。

function SumField() {  
   var price = Xrm.Page.getAttribute("new_price");   
   var total_price = Xrm.Page.getAttribute("new_total_price");

   if(price.getValue() != null) {
      var newValue = price.getValue() * 3.14;
      total_price.setValue(newValue);

      // Make sure the changes are saved back to the server - in CRM 4.0, this was     crmForm.new_fieldname.ForceSubmit = true;
      Xrm.Page.getAttribute("new_total_price").setSubmitMode("always"); 
   }
}

2 个答案:

答案 0 :(得分:1)

JavaScript在这种情况下不起作用,至少它不是最佳解决方案。

不是使用JavaScript处理它而是编写一个插件,该插件会触发Product实体中的更改并更新所需的商机实体记录。 (我正在考虑与一个机会相关的产品很少,即1:N关系)

如果您希望某个产品中的更改将更新所有记录中的值,机会创建另一个实体,说“配置”,它将保留此值并使用JavaScript在Opportunity表单上显示(原因是:如果一个产品记录创建更新机会的所有记录,它将影响CRM的表现)

答案 1 :(得分:1)

您有一些可能性,最佳选择取决于您的技术专长:

  • 工作流程 - 在字段new_total_price更改时启动工作流程并更新相关的机会。为此,您不需要任何已知的编程语言
  • 插件 - 在您的产品实体更新中,您可以更新相关机会。您需要了解C#或VB .NET
  • Javascript - 一个解决方案就是机会,你检查产品是否相关(例如你使用FetchXML或OData)new_total_price已填充,你可以用这些信息更新你的机会。

还有更多选择,但你有一些选择。

相关问题