1

希望有人能幫助解決這個問題。我知道如何在表單上設置字段值,並以某種方式工作。我的查詢是圍繞這個事實,它只有在我將下面這行代碼放在表單加載事件中作爲行自身時才起作用。在窗體上設置十進制值並不總是有效 - Dynamics CRM 2013

Xrm.Page.getAttribute('cal_entrynumber').setValue(1.01);

然而,在現實中,我需要有一些條件檢查之前,我設置這個值,當我把這個線到這些條件檢查,那麼我注意到的是,該文本框爲空,但如果我看在數據實體的值中,它確實表明它的值爲1.01。

alert("No. in entity:" + Xrm.Page.data.entity.attributes.get('cal_entrynumber').getValue());

所以我想知道如果任何人都可以找出我什麼,可能的原因可能爲這...這是該行坐的代碼(不工作)。

var queryString = "?$select=cal_EntryNumber&$filter=cal_SafetyProgrammeNo eq '" + spNo + "'&top=1&$orderby=cal_EntryNumber desc"; 
SDK.REST.retrieveMultipleRecords(
    "cal_operation", 
    queryString, 
    function (results) { 
     //alert(results.length); 
     if (results.length == 0) { 
      //var entry = 1.01; 
      //alert("Entry No:" + Number(entry)); 
      Xrm.Page.getAttribute('cal_entrynumber').setValue(1.01); 

     } 
     else { 
      // Code to go here.        
     } 
    }, 
    errorHandler, 
    function() { 
     // OnComplete handler 
    } 
    ); 

回答

1

我發現了爲什麼這不工作(即使代碼是正確的),我在這裏張貼我的答案,以幫助任何其他可能有相同問題的人。

當表單加載並且這是清空其(javascript設置)值的字段時,Entry Number字段獲得焦點。我通過將另一個文本框字段作爲表單中的第一個字段來解決此問題,現在該字段顯示了javascript設置值(不需要更改代碼)。

我懷疑這個工作,當我把代碼放入表單加載事件本身,因爲它獲得同步運行,但是當我把同一行代碼放入retrieveMultipleRecords成功回調函數,因爲它運行異步,它提出了這個問題。希望這可以幫助其他人解決這個問題。

相關問題