1

Espérons que quelqu'un puisse vous aider. Je sais comment définir une valeur de champ sur un formulaire et cela fonctionne d'une certaine façon. Ma question concerne le fait que cela ne fonctionne que si je mets cette ligne ci-dessous dans l'événement de chargement de formulaire comme une ligne par elle-même.La définition d'une valeur décimale sur un formulaire ne fonctionne pas toujours - Dynamics CRM 2013

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

Cependant, en réalité, je dois avoir des contrôles conditionnels avant de définir cette valeur et quand je mets cette ligne dans ces contrôles conditionnels, alors ce que je remarque est que la zone de texte est vide, mais si je regarde à la valeur dans l'entité de données, il indique qu'il a la valeur de 1,01.

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

Donc je voulais savoir si quelqu'un peut me repérer à tout ce qui pourrait potentiellement être la cause de cette ... voici le code dans lequel la ligne se trouve (et le travail ne marche pas).

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

Répondre

1

J'ai découvert pourquoi ce travail ne marche pas (même si le code est correct) et je poste ma réponse là pour vous aider quelqu'un d'autre qui pourrait avoir le même problème.

Le champ Numéro d'entrée est mis en évidence lorsque le formulaire est chargé et qu'il vide le champ de sa valeur (ensemble javascript). J'ai corrigé ceci en plaçant un autre champ de zone de texte comme le premier champ sur le formulaire et maintenant le champ montre la valeur d'ensemble de javascript (aucun changement de code n'était requis). Je suppose que cela a fonctionné quand j'ai mis le code dans l'événement de chargement de formulaire par lui-même car il s'exécute de manière synchrone mais quand je mets la même ligne de code dans la fonction de rappel de retrieveMultipleRecords, comme cela fonctionne de manière asynchrone. J'espère que cela aide quelqu'un d'autre avec ce problème.