2017-09-13 95 views
2

我有一個實體包含2個窗體,我想防止這兩個窗體之間根據兩個選項字段的值導航。換句話說,如果需要prescoring的值是yes導航是不可能的,反過來,我該怎麼做?隱藏形式標籤在一個窗體頭crm動態365

是否可以簡單地隱藏列表?

感謝,

enter image description here

+0

這不是,因爲表單取決於安全角色,而不取決於數據。您需要修改要求。 – Alex

+0

隱藏這個列表也不是可能嗎? @Alex – Marwan

+1

不,這不可能以支持的方式進行。 –

回答

2

不,你不能動態地改變用戶可以選擇的形式。這隻能根據安全角色靜態完成。

相反,我建議使用單個表單,根據您的需要處理字段的值來隱藏和顯示相關字段/部分/選項卡。

+0

如果他點擊Diligence,我是否可以將用戶始終重定向到預先評分的表格? @Henrik H – Marwan

+0

您可以通過編程方式更改表單。我會建議反對它。只需使用單個窗體顯示/隱藏東西,我個人發現這些東西更容易維護(以這種方式,您可以輕鬆地在各種用例中重複使用元素) –

0

您可以根據項目的複雜程度來決定表單控件/選項卡/部分的數量。我們做了這樣的事情來保持&基於表單控制值的強制導航。

var taskFormOptionSet = { 
     Form1: 1, 
     Form2: 2, 
    }; 

     var FormNames = { 
      Form1: "Form1", 
      Form2: "Form2", 
     }; 

    var myform = Xrm.Page.getAttribute("need_Prescoring").getValue(); 
    var currentform = Xrm.Page.ui.formSelector.getCurrentItem(); 

    if (currentform != null) { 
     var formId = currentform.getId(); 
     var formLabel = currentform.getLabel(); 
    } 

    if (myform == taskFormOptionSet.Form1 && formLabel != FormNames.Form1) { 
     var items = Xrm.Page.ui.formSelector.items.get(); 
     for (var i in items) { 
      var form = items[i]; 
      var formId = form.getId(); 
      var formLabel = form.getLabel(); 

      if (formLabel == FormNames.Form1) { 
       form.navigate(); 
       return; 
      } 
     } 

    } 
-1

因爲它不支持我使用的另一種解決方案是檢查布爾是真實的名字,如果用戶試圖改變他將被重定向到正確的表格形式,直到他改變布爾值。

DiligenceSwitch: function(){ 
    if (Xrm.Page.ui.formSelector.getCurrentItem() != null) { 
     var currentform = Xrm.Page.ui.formSelector.getCurrentItem();    
    } 

    if (currentform != null) { 
     var formId = currentform.getId(); 
     var formLabel = currentform.getLabel(); 
    } 

    var kycId = Xrm.Page.data.entity.getId();   
    SDK.REST.retrieveRecord(kycId, "kyc_Kycdiligence", "kyc_Needprescoring", null,    //field for searching the targeted field, entity, targeted field, ... 
     function (kyc) { 
      if (kyc != null || kyc.kyc_Needprescoring != null) { 
       if (formLabel != "Pre-Scoring" && kyc.kyc_Needprescoring == true) {  
        var windowOptions = { openInNewWindow: false }; 
        var parameters = {}; 
        parameters["formid"] = "4B0C88A9-720C-4BFA-8F59-7C1D5DD84F02"; 
        Xrm.Utility.openEntityForm("kyc_kycdiligence", kycId, parameters, windowOptions); 
        alert("Vous devez faire le pre-scoring");  
       } 
      } 
     }, 
     function (error) { 
      Xrm.Utility.alertDialog(error.message); 
     }); 
}, 
+0

您是否看到我的答案?爲什麼你要再做一次服務調用來檢索可用的表單字段值? –

+0

因爲我應該得到onload的值,有時它是空的,會產生錯誤,並且這個字段應該以@ArunVinoth的形式隱藏 – Marwan