2013-03-15 59 views
4

我有一個名爲product的實體。有一個叫做物品價格的字段。Javascript和表單的多個實例

現在我已經創建了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"); 
    } 
} 
+4

你能更好地解釋你想要的嗎?你想更新機會領域? – 2013-03-15 09:33:01

+0

是的,我希望機會的領域自動更新。 – ozil 2013-03-15 10:28:20

+0

您顯示的代碼將表明您正在單個表單上添加字段,並且正在更新該表單上的另一個字段。這似乎與您的問題不一致 - 這意味着在多個實體之間添加值,然後更新另一個不同的實體。你能解釋代碼的重要性/相關性嗎?你在使用它嗎? – glosrob 2013-03-15 14:07:34

回答

1

在這種情況下JavaScript不起作用,至少它不會是最優的解決方案。

而不是用JavaScript處理它寫一個插件,引發產品實體中的變化並更新期望的機會記錄實體。 (我正在考慮將有少數產品與一個機會相關,即1:N關係)

如果您希望某個產品的更改將更新所有記錄中的值機會創建另一個實體說「配置」保留此值並使用JavaScript在商機表單上顯示它(原因是:如果一個產品記錄創建更新機會的所有記錄,它將影響CRM的性能)

1

您有一些可能性,最好的選擇取決於您的技術專長:

  • 工作流程 - 當字段new_total_price更改時啓動工作流程d並更新相關的機會。爲此,您不需要任何已知的編程語言
  • 插件 - 在更新您的產品實體時,您可以更新相關機會。你需要知道的C#或VB .NET
  • Javascript - 一種解決方案是加載機會,檢查產品相關是否有(例如使用FetchXML或OData)填充new_total_price,並且該信息可以更新您的機會。

有更多的選擇,但你在這裏有一些選擇。

+0

是否有任何函數(CRM SDK函數)可用於迭代表單的所有實例以選擇特定字段。 – ozil 2013-03-18 12:55:57

+0

不,沒有辦法獲得表單的實例。你想做什麼? – 2013-03-18 13:20:32