mardi 1 août 2017

#Tip29 Dynamics 365 : Cacher des sections sur un formulaire

Sur certains formulaires, il peut être utile de masquer ou d’afficher des sections entières. L’article suivant vous permet de masquer ou d’afficher des sections avec du Javascript.
Avec les règles métiers standards, si la section ne contient que des champs, et que tous les champs sont masqués alors la section est masquée. Or si la section contient une sous-grille, c’est pour le moment impossible à appliquer…

Conseil : Il est préférable de donner des noms logiques à vos onglets et à vos sections. Il sera plus facile de se repérer dans le code en cas de mise à jour.

Le code ci-dessous décrit comment masquer ou afficher des sections en fonction de la valeur d’un champ :
function setSectionVisibleAccountType() {
var type = Xrm.Page.getAttribute("NomTechniqueDuChamp").getValue();
if (type == "Valeur") {
        Xrm.Page.ui.tabs.get("NomDeL’Onglet").sections.get("NomDeLaSection").setVisible(true);
    }
else {
        Xrm.Page.ui.tabs.get("NomDeL’Onglet").sections.get("NomDeLaSection").setVisible(false);
    }
}

Pour déterminer l’affichage ou le masquage de la section :
  • Si setVisible = true alors la section est visible.
  • Si setVisible = false alors la section est masquée.
La fonction peut être appelée sur les évènements :
  • OnLoad : Au chargement du formulaire
  • OnChange : A la modification du champ
  • OnSave : A la sauvegarde du formulaire
Voici un exemple d’utilisation de cette fonction pour plusieurs sections d’un formulaire (Entité Compte personnalisée).
  • Cas de l’affichage des sections : Il faut que la valeur du champ Type de compte = Société
image
  • Cas de masquage des sections : Il faut que la valeur soit différente de Société
image