2016-04-21 305 views
-1

我在文件1中定义了getGlobalOptionSetTextByValue函数。该函数返回一个值。我从文件2调用这个函数,但是返回值似乎总是被设置为undefined。函数返回undefined

下面是文件2中的代码:

var X= X|| { __namespace: true }; 
X.TravelHistory = (function() { 
    //This function will calculate the duration and sent an error message if the duration is greater than 6 months. 
    function TravelDuration(fromDate, toDate) { 
     var crtlDate = Xrm.Page.getControl(toDate); 
     var toDate = Xrm.Page.getAttribute(toDate).getValue(); 
     var fromDate = Xrm.Page.getAttribute(fromDate).getValue(); 
     var optionSet = Xrm.Page.getAttribute("dads_javascriptoptionset"); 
     var notification; 
     if (toDate != null && fromDate != null) { 
      var temp1 = new Array(); 
      temp1 = toDate.split('/'); // split the To date with '/' 
      var toYear = temp1[0]; 
      var toMonth = temp1[1]; 

      var temp2 = new Array(); 
      temp2 = fromDate.split('/'); // split the From date with '/' 
      var fromYear = temp2[0]; 
      var fromMonth = temp2[1]; 
      //To year have to be less than From year 
      if (toYear < fromYear) { 
       //crtlDate.setNotification("TO Date needs to be later than the FROM date."); 
       notification = X.Common.getGlobalOptionSetTextByValue(450640028, optionSet); 
       crtlDate.setNotification(notification); 

      } 
     } 
    } 
    return { 
     TravelDuration: function (fromDate, toDate) { 
      TravelDuration(fromDate, toDate); 
     } 
    }; 
})(); 

下面是从文件1的代码:

var X= X|| { __namespace: true }; 
X.Common = (function() { 
    var label; 
    function getGlobalOptionSetTextByValue(value, optionSetLogicalName) { 
     var globalOptionSet = optionSetLogicalName 
     var entityLogicalName = Xrm.Page.data.entity.getEntityName(); 

     for (var i = 0; i < globalOptionSet.getOptions().length; i++) { 
      if (globalOptionSet.getOptions()[i].value == value) { 
       label = globalOptionSet.getOptions()[i].text; 
       break; 
      } 
     } 
     return label; 
    } 
    return { 
     getGlobalOptionSetTextByValue: function(value, optionSetLogicalName) { 
      getGlobalOptionSetTextByValue(value, optionSetLogicalName); 
     } 
    }; 
})(); 
+1

你的代码不是很容易遵循:-(什么都没做什么? – Tuvia

+0

为什么你在2个不同的页面上有2个功能?它让我想起了C++ ... – zer00ne

+0

这组javascript文件所采用的路径并不清楚,因为您在这两个文件中都调用了相同的函数。我不知道你究竟从哪里开始,以及你的计划在哪里结束。另外,我会尝试将'console.log()'放在代码的一些地方,这样你就可以准确地找到它出错的地方,并且变得不确定。 – JoeL

回答

0

的问题是,由Xrm.Page.getAttribute("dads_javascriptoptionset");返回的对象不包含与所述一个条目值如

{ 
id: 450640028, 
text: "....whatever..." 
}