Rechercher dans ce blog

vendredi 4 novembre 2011

Ajout d'un groupe de navigation dans un formulaire

Voici la version pour CRM 2011 de mon précédent article http://dynamicscrmcustomization.blogspot.com/2011/10/ajouter-un-groupe-de-relation-dans-un.html

D'après l'article Change Form Navigation du SDK :

La zone de navigation est divisée en cinq zone : Éléments Communs, Ventes, Service, Marketing et Processus. Dans l'éditeur de formulaire, tu peux changer les éléments des groupes et aussi les noms des groupes. Tu peux obtenir le même résultat en utilisant FormXml, en localisant l'élément .

Tu ne peux pas ajouter de nouveau groupe de navigation ou en supprimer. Si un groupe de navigation ne contient pas d'éléments, il n'est pas affiché.

Nous allons créés un nouveau groupe de navigation nommé Demo dans le formulaire de Compte.

Créer d'abord une ressource jscript contenant le code suivant :

// =====================================================
// JsNavBar v1.0 - 11/04/2011 (CRM 2011)
// =====================================================
JsNavBar = function(displayName) {
 var navBarDisplayName = displayName;
 var navBarItemArray = new Array();

 JsNavBar.prototype.AddNavBarItem = function(navBarItemId) {
  navBarItemArray[navBarItemArray.length] = document.getElementById(navBarItemId);};

 JsNavBar.prototype.Show = function() {
  var crmNavBar = document.getElementById("crmFormNavSubareas");
  if (crmNavBar != null) {

   var navBarItems = document.createElement("UL");
   navBarItems.style.display = "inline";
   navBarItems.className = "ms-crm-Nav-Group-Subareas";

   for (i = 0; i < navBarItemArray.length; i++) {
    if (navBarItemArray[i] != null) {
     navBarItems.appendChild(navBarItemArray[i].parentNode);
    }
   }
   if (navBarItems.hasChildNodes()) {
    var newNavBar = document.createElement("LI");
    newNavBar.className = "ms-crm-Nav-Group";
    newNavBar.innerHTML = 'Expanded, click to collapse' + navBarDisplayName + '';
    newNavBar.appendChild(navBarItems);

    if (crmNavBar.childNodes.length > 1) {
     var secondNav = crmNavBar.childNodes[1];
     crmNavBar.insertBefore(newNavBar, secondNav);

    } else {
     crmNavBar.appendChild(newNavBar);
    }
   }
  }
 };
};
Ajouter aussi la fonction d'appel :
 
AjouteNav = function(){
var demoNavBar = new JsNavBar("Demo");  
demoNavBar.AddNavBarItem("navContacts");  
demoNavBar.AddNavBarItem("navRelationships");  
demoNavBar.Show();
};

Lancer la fonction sur le OnLoad de l'entité Compte.
Le nouveau groupe a bien les mêmes fonctionnalités que les groupes standards.

Aucun commentaire:

Enregistrer un commentaire