2016-04-21 13 views
-1

ファイル1で定義されたgetGlobalOptionSetTextByValue関数があります。この関数は値を返します。私はファイル2からこの関数を呼び出していますが、戻り値は常に定義されていないように設定されているようです。以下関数は未定義を返します

ファイル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からのコードである:

+1

あなたは次のように非常に簡単ではありません:-(何もしていないのですか? – Tuvia

+0

なぜ2つの別々のページに2つの機能がありますか?それは私にC++を思い出させます。 – zer00ne

+0

両方のファイルで同じ関数を呼び出しているので、このjavascriptファイルセットのパスはわかりません。私はあなたがどこで始まっているのか、あなたの計画の終わりがどこにあるのか正確にはわかりません。また、私はあなたのコードのいくつかの場所に 'console.log()'を入れて、どこが間違っていて、未定義になるのかを正確に見いだそうとします。 – JoeL

答えて

0
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); 
     } 
    }; 
})(); 

問題がXrm.Page.getAttribute("dads_javascriptoptionset");によって返されたオブジェクトが持つエントリを含まないことです値のような

{ 
id: 450640028, 
text: "....whatever..." 
} 
関連する問題