Masquer le champ d'une liste SharePoint selon le 'mode' du formulaire (view, edit, new)

  • Masquer le champ d'une liste SharePoint selon le 'mode' du formulaire (view, edit, new)

    Posté par R3dKap sur 24 décembre 2021 à 13h24

    La récente fonctionnalité native fournie par SharePoint pour masquer certains champs de votre liste SharePoint dans le formulaire associé à la liste ne vous permet pas de différencier le fait que le champ n’est visible que pour l’opération de visualisation, d’édition ou de création :

    Décocher un champ ici le masquera sur le formulaire que vous soyez en visu, en modification ou en création sur le formulaire de la liste correspondante.

    Il existe pourtant un moyen de décider sur quel état du formulaire le champ est visible ou pas. Il faut pour cela passer par quelques commandes PnP PowerShell.

    Installer PnP PowerShell

    Ouvrez votre menu Windows et tapez “powershell” pour rechercher l’application Windows PowerShell sur votre PC.

    Ouvrez le menu associé à l’application Windows PowerShell et exécutez-la en mode administrateur :

    Dans la fenêtre PowerShell tapez d’abord la commande suivante :

    Set-ExecutionPolicy -ExecutionPolicy Unrestrictedn

    Ensuite, exécutez la commande suivante pour installer le mode PnP PowerShell :

    Install-Module -Name PnP.PowerShelln

    Fermer la fenêtre Windows PowerShell puis relancez-la en mode normal (pas besoin de la lancer en mode administrateur).

    Se connecter au site SharePoint

    Dans la fenêtre PowerShell exécutez la commande suivante :

    Connect-PnPOnline <url de votre site SharePoint : https://votretenant.sharepoint.com/sites/votresite>n

    Saisissez votre compte et mot de passe lorsqu’ils sont demandés.

    Ensuite, tapez la commande suivante pour récupérer le contexte de la connexion qui servira plus tard :

    $ctx = Get-PnPContextn

    Récupérer le champ à modifier

    Tapez les commandes suivantes pour charger les caractéristiques du champ que vous voulez masquer :

    $field = Get-PnPField -List Lists/<votre liste dans l'url> -Field <nom interne du champ>n$ctx.Load($field)n$ctx.ExecuteQuery()n

    Définir sa visibilité selon l’état du formulaire

    Pour définir la visibilité du champ dans le formulaire en mode ‘affichage‘ :

    $field.SetShowInDisplayForm($true)n$Global:Ctx.ExecuteQuery()n

    Remplacer $true par $false si vous voulez le masquer.

    Pour définir la visibilité du champ dans le formulaire en mode ‘édition‘ :

    $field.SetShowInEditForm($true)n$Global:Ctx.ExecuteQuery()n

    Remplacer $true par $false si vous voulez le masquer.

    Pour définir la visibilité du champ dans le formulaire en mode ‘création‘ :

    $field.SetShowInNewForm($true)n$Global:Ctx.ExecuteQuery()n

    Remplacer $true par $false si vous voulez le masquer.

    Et voilà… 😉

    PostID=y4lBJfsYpvElAVq

    R3dKap a répondu Il y a 2 mois, 3 semaines 1 Membre · 2 Réponses
  • 2 Réponses
  • Xavier NOEL-BRIAND

    Membre
    24 mars 2022 à 22h07

    Merci pour le partage. Un peu lourd si on a plusieurs champs à masquer. Sais-tu si une évolution est prévue sur ce sujet en standard ?

    SI on doit masquer certains champs d’une liste au créateur, pour que ces champs ne soient visibles que par une équipe support, quelle méthode employer ? C’est forcément un forms PowerApps ?

    CommentID=sRHoUi5UU1DRdMS, PostID=y4lBJfsYpvElAVq

  • R3dKap

    Membre
    25 mars 2022 à 13h48

    @Xavier NOEL-BRIAND oui, la seule autre piste c’est le forms Power Apps…

    Et à mon avis, on est pas près de voir une évolution pour que l’on puisse définir cette visibilité selon que l’on est en création ou en modification dans le paramétrage standard par de simples clics-clics à l’écran… 😅

    CommentID=kaY2QhJ3wNZHKao, PostID=y4lBJfsYpvElAVq

Connectez-vous pour répondre.