mars 14
Bienvenue sur mon blog !

C'est ici que je partagerai mes réflexions sur des sujets qui m'importent et, qui sait, peut-être que je partagerai même des photos, des vidéos et des liens ainsi que d'autres contenus intéressants.

Si j'ai réussi à capter votre attention, faites-le moi savoir.

avr. 26
Environnement - Installer SharePoint 2019

 

Nous avons testé SharePoint 2019.

Rien de nouveau (ou presque) en terme d'installation.

Compter 3 heures à 4 heures selon votre niveau de pratique.

Tout est pratiquement identique à l'installation de SharePoint 2013 et 2016 sur https://trupel.com/sharepoint/Lists/Categories/Category.aspx?CategoryId=14

Il vous faudra :

  1. Définir les comptes nécessaires pour le déploiement et l'installation https://trupel.com/sharepoint/Lists/Billets/Post.aspx?ID=63
  2. Créer une VM avec Windows Server ; nous avons opté pour Windows Server 2019 ; 16 GO de mémoire et 100 GO de data pour être à l'aise. Voir https://docs.microsoft.com/fr-fr/sharepoint/install/hardware-and-software-requirements-2019 
  3. Assigner une adresse IP au serveur et rattacher le compte d'installation au groupe administrateur local ; https://trupel.com/sharepoint/Lists/Billets/Post.aspx?ID=64
  4. Désactiver la sécurité Internet pour les administrateurs (vous en aurez besoin pour Windows update et SSMS) 
  5. Installer SQL server ; nous avons opté pour SQL Server 2017 ; https://trupel.com/sharepoint/Lists/Billets/Post.aspx?ID=65 ; petite différence avec SQL Server 2012, SQL Server management studio est à télécharger à part ;
  6. Télécharger et installer SSMS ; https://docs.microsoft.com/fr-fr/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017
  7. Modifier le degré maximum de parallélisme et la mémoire maximale du serveur avec SSMS ; https://trupel.com/sharepoint/Lists/Billets/Post.aspx?ID=66
  8. Installer les prérequis de SharePoint 2019
  9. Installer SharePoint 2019 en batterie de serveur unique ; https://trupel.com/sharepoint/Lists/Billets/Post.aspx?ID=67
SP81.jpg

A la fin de l'assistant de configuration vous devez obtenir ceci :

SP82.jpg

Et si tout va bien aucune erreur dans l'administration centrale :

SP83.jpg

Vous pouvez alors créer la collection racine :

SP84.jpg

 

Ne pas oublier après chaque installation de lancer Windows update et de redémarrer systématiquement le serveur.

Après installation configurer :

  1. La journalisation des diagnostics
  2. La collection des données d'utilisation et d'intégrité
  3. La recherche

 SP85.jpg

 

Créer un document dans une bibliothèque.

SP86.jpg

Démarrer une analyse.

SP87.jpg 

Vérifier que la recherche fonctionne.

SP88.jpg

 SP89.jpg

Découvrez SharePoint 2019.


janv. 16
PowerApps - Créer sa première applications avec SharePoint

​Objectif : Construire une application SharePoint des codes postaux.

Point 1

Importer un fichier des codes postaux avec Power Query d'Excel.

Se rendre sur https://www.data.gouv.fr

 PWA046.jpg

Ouvrir Excel.

Dans le groupe Récupérer et Transformer des données cliquer sur A partir du web.

Ouvrir Power Query A partir du web et copier l'url.

PWA047.jpg 

Changer le nom de la requête.

 PWA048.jpg

Ouvrir comme CSV.

PWA049.jpg 

PWA050.jpg 

A partir de l'onglet transformer.

PWA051.jpg 

Transformer les colonnes Codes commune et code postal en texte.

 PWA052.jpg

Enregistrer dans Excel.

 PWA053.jpg

PWA054.jpg 

Exporter le tableau vers une liste SharePoint.

 PWA055.jpg

Attendre un certain temps... 39201 enregistrements

Point 2

Une fois dans SharePoint :

PWA056.jpg 

Créer une app à partir de la liste SharePoint.

 PWA057.jpg

Message d'erreur la première fois.PWA058.jpg

 PWA059.jpg

 

Astuce : Créer un index dans SharePoint à partir de paramètre de liste.

PWA060.jpg 

 

PWA061.jpg 

PWA062.jpg 

Supprimer l'application « cp » PowerApps préalablement créée et la recréer.

Le même message apparaît.

PWA063.jpg 

Cliquer sur BrowseGallery1 et modifier la fonctionnalité Items comme suit :

PWA064.jpg 

Remplacer Title par Code_postal (index récemment créé).PWA065.jpg

L'erreur a disparu et la galerie se charge.

PWA066.jpg 

PWA067.jpg 

Modifier la disposition de BrowseGallery1.

Cliquer sur Titre, sous-titre et corps.

PWA068.jpg 

Modifier la disposition et choisir Titre et sous-titre.

 PWA069.jpg

Et changer Title2 en Code_postal.

 PWA070.jpg

PWA071.jpg 

Tester : ça marche !

 PWA072.jpg

 PWA073.jpg

Enregistrer et publier la version.

PWA074.jpg 

Point 3

Allons plus loin.

Créer un deuxième index sur Nom_commune.

PWA075.jpgPWA076.jpg 

 

Puis construire Items de BrowseGallery1 comme ceci :

Avant

SortByColumns(Filter(cp; StartsWith(Code_postal; TextSearchBox1.Text)); "Code_postal"; If(SortDescending1; Descending; Ascending))

Après

SortByColumns(Filter(cp; StartsWith(Nom_commune; TextSearchBox1.Text)); "Nom_commune"; If(SortDescending1; Descending; Ascending))

Ce qui permet désormais de rechercher par nom de commune.

PWA077.jpg 

 PWA078.jpg

Point 4

Plus fort encore :

Construire Items BrowseGallery1 comme ceci :

If(IsNumeric(TextSearchBox1.Text);SortByColumns(Filter(cp; StartsWith(Code_postal; TextSearchBox1.Text)); "Code_postal"; If(SortDescending1; Descending; Ascending));SortByColumns(Filter(cp; StartsWith(Nom_commune; TextSearchBox1.Text)); "Nom_commune"; If(SortDescending1; Descending; Ascending)))

 

Ceci permet de chercher soit par code postal soit par nom de commune.

 PWA079.jpg

PWA080.jpg 

Enregistrer et publier.

 

Possibilité de ne garder que les 5 premiers éléments à afficher.

If(IsNumeric(TextSearchBox1.Text);

FirstN(SortByColumns(Filter(cp; StartsWith(Code_postal; TextSearchBox1.Text)); "Code_postal"; If(SortDescending1; Descending; Ascending));5);

FirstN(SortByColumns(Filter(cp; StartsWith('Nom_commune'; TextSearchBox1.Text)); "Nom_commune"; If(SortDescending1; Descending; Ascending));5))

 

 

PWA082.jpgPWA081.jpg 

déc. 09
PowerApps - créer sa première application à partir d’Excel

Proposition : créer sa propre application de relévés de tension artérielle sous Excel avec PowerApps.

Directement adapté de https://docs.microsoft.com/fr-fr/powerapps/maker/canvas-apps/get-started-create-from-blank

Création d'un fichier RelevesTension.xlsx

Comprenant :

La date, l'heure, la systole, la diastole et les pulsasions cardiaques.

PWA0046.jpg

Créer une application de canevas à partir de rien.

Créer une connexion avec le tableau RelevesTension.xslx.

PWA0047.jpg

 PWA0048.jpg

Créer un écran de type Liste.

PWA0049.jpg

Connecter la « Galerie » au tableau puis choisir Titre, sous-titre et corps.

PWA0050.jpg

Cliquer sur BrowseGallery1 et sélectionner la source de données et la disposition.

PWA0051.jpg 

PWA0052.jpg

Modifier la propriété items de la Galerie en :

SortByColumns(Search(RelevesTension; TextSearchBox1.Text; "Date"); "Date"; If(SortDescending1; SortOrder.Descending; SortOrder.Ascending))

PWA0053.jpg

Changer Le titre de l'écran  en Relevés de tension.

PWA0054.jpg

Créer un écran de formulaire.

PWA0055.jpg

Rattacher l'écran à RelevesTension.xlsx et sélectionner les champs à mettre à jour.

 PWA0056.jpg

 

Définir la propriété Item de Editform1 à BrowseGallery1.Selected ce qui correspond à la galerie d'affichage de l'élément sélectionné.

PWA0057.jpg

Renommer l'écran en Modifier tension.

Supprimer Screen1 et renommer les écrans.

PWA0058.jpg 

Dans ViewScreen modifier la propriété onselect de IconRefresh1 à Refresh(RelevesTension)

PWA0059.jpg

Modifier la propriété onselect de IconNewItem1 à NewForm(EditForm1);; Navigate(ChangeScreen; ScreenTransition.None)

PWA0060.jpg

Modifier la propriété onselect de NextArrow2 à EditForm(EditForm1) ;; Navigate(ChangeScreen;ScreenTransition.None)

 PWA0061.jpg

Dans ChangeScreen

Modifier la propriété onselect de IconCancel1 à ResetForm(EditForm1);;Navigate(ViewScreen; ScreenTransition.None)

PWA0062.jpg

IconAccept1 à

SubmitForm(EditForm1);;Navigate(ViewScreen; ScreenTransition.None)

PWA0063.jpg

Insérer une icône de type corbeille.

 PWA0064.jpg

 

Et modifier la propriété onselect de icon1 à

Remove(RelevesTension; BrowseGallery1.Selected) ;;Navigate(ViewScreen; ScreenTransition.None)

 PWA0065.jpg

Enregistrer, publier et tester.

déc. 02
InfoPath VS PowerApps 3 - Utiliser un bouton de sélection dans un tableau répétitif

Utiliser un bouton de sélection dans un tableau répétitif

 

Version InfoPath.

Créer un formulaire et rejouer afficher les données d'une liste SharePoint dans un tableau répété : https://trupel.com/blog_sharepoint/Lists/Billets/Post.aspx?ID=86

PWA0032.jpg 

Puis ajouter à droite une nouvelle colonne et placer un bouton Select.

Créer deux champs texte Title et Color.

Ajouter deux règles sur le bouton.

PWA0033.jpg 

PWA0034.jpg 

Publier le formulaire. Cliquer sur l'un des boutons Select.

PWA0035.jpg 

Version PowerApps.

Reprendre Afficher les données d'une liste SharePoint ; https://trupel.com/blog_sharepoint/Lists/Billets/Post.aspx?ID=86

Insérer un formulaire de type modification.

PWA0036.jpg 

Recadrer et déplacer le formulaire.

PWA0037.jpg 

Dans Form1 cliquer sur Aucune données.

PWA0038.jpg 

Aligner les colonnes sur 1.

PWA0039.jpg 

Cliquer sur Sélectionner une source de données.

PWA0040.jpg 

Sélectionner et masquer les champs nécessaires.

PWA0041.jpg 

PWA0042.jpg 

Dans Form1 cliquer sur Avancé.

PWA0043.jpg 

Dans Item saisir : DataTable2.Selected.

Il s'agit de la référence de la table de donnée présente.

PWA0044.jpg 

Tester en sélectionnant une ligne de la table de données.

PWA0045.jpg 

 

oct. 31
InfoPath VS PowerApps 2 - Remplir automatiquement des champs lorsqu'un élément dans une liste déroulante est sélectionné

Remplir automatiquement des champs lorsqu'un élément dans une liste déroulante est sélectionné.

Version InfoPath.

Créer un formulaire et une connexion de données en réception.
Cf. Liste personnalisée OfficeApplications

Créer un champ de type liste déroulante s'appuyant sur la liste de connexion de données OfficeApplications.


Dans Valeur sélectionner ID et dans Nom complet sélectionner Title.


 PWA0017.jpg
Créer deux champs texte Title et Color destinés à recevoir les informations en réception.

Sur le champ champ1, créer deux règles d'actions.
 PWA0018.jpg
Définir la valeur du champ Title avec la valeur du champ secondaire Title lorsque l'ID du champ secondaire est égale au champ1 sélectionné.

Le cheminement des écrans doit ressembler à ceci (de haut en bas et de gauche à droite).


 PWA0019.jpg


Réitérer les mêmes actions pour le champ Color.
Publier le formulaire.
 PWA0020.jpg
Version PowerApps.

Ouvrir une nouvelle application vide.

Insérer une liste déroulante.


 PWA0021.jpg
 PWA0022.jpg
Insérer une source de données : Liste personnalisée OfficeApplications.


 PWA0023.jpg
Sélectionner la liste déroulante Dropdown1.
 
Et dans la propriété Items taper la formule.

 

PWA0025.jpg 

 
Soyez patient PowerApps peut-être un peu long a réagir.
Sinon taper la formule suivante.
 

PWA0024.jpg
 
Insérer une galerie verticiale.


 PWA0026.jpg
Dans disposition sélectionner Titre et sous-titre.

PWA0027.jpg
 
Puis dans Items saisir.


 PWA0028.jpg
PWA0029.jpg 


Sélectionner la galerie.
Modifier la zone items comme suit :
Filter(OfficeApplications; Title=Dropdown1.Selected.Value)

Attention : Dans la version française la "," est à remplacer par le ";".

PWA0029A.jpg 

PWA0030.jpg
 
 
Tester et publier.
 PWA0031.jpg

 

oct. 26
JSON Formatage des affichages des listes SharePoint

Après le formatage des colonnes, Microsoft nous offre le  formatage des affichages SharePoint.

C'est opérationnel depuis peu.

Le principe est exactement le même que celui des colonnes.

Constitution d'un format JSON et mise en place dans un espace prévu à cet effet ; et ce, quel que soit l'affichage.

JSON024.jpg 


JSON025.jpg 

JSON026.jpg

Si nous reprenons notre liste du billet https://trupel.com/blog_sharepoint/Lists/Billets/Post.aspx?ID=85,

Nous pouvons mettre à jour l'affichage par défaut ou un nouvel affichage en adaptant un format JSON :

{

  "schema": "https://developer.microsoft.com/json-schemas/sp/view-formatting.schema.json",

  "additionalRowClass": "=if([$Statut] == 'Terminé', 'sp-field-severity--good', if([$Statut] == 'En cours', 'sp-field-severity--low' ,if([$Statut] == 'En revue','sp-field-severity--warning',  if([$Statut] == 'Bloqué','sp-field-severity--blocked', 'sp-field-severity--severeWarning'))))"

}

La classe  utilisée est compatible avec le formatage JSON des colonnes.

Affichage sans formatage :

JSON027.jpg

Affichage avec formatage : Mise en forme conditionnelle basée sur la valeur d'un champ de type choix.
JSON028.jpg

Des exemples fabuleux et ingénieux sur :

https://github.com/SharePoint

https://github.com/SharePoint/sp-dev-list-formatting

https://github.com/SharePoint/sp-dev-list-formatting/tree/master/view-samples


oct. 22
InfoPath VS PowerApps 1 - Afficher les données d’une liste SharePoint dans un tableau

​Infopath n'est pas encore mort ; il bouge encore.

PowerApps monte en puissance.

Nous allons devoir cohabiter avec les deux applications jusqu'en 2023.

Afficher les données d'une liste SharePoint dans un tableau.

Soit la liste personnalisée suivante :

PWA0001.jpg Version InfoPath

Créer un nouveau formulaire InfoPath.

Créer une Connexion de donnée.

PWA0002.jpg 

PWA0003.jpg PWA0004.jpg

PWA0005.jpg 

 PWA0006.jpg

Dans la zone Champs sélectionner les champs secondaires.

PWA0007.jpg 

Développer DataFields et tirer et relâcher le groupe d:SharePointLisItem_RW vers le formulaire.

PWA0008.jpg 

Publier le formulaire.

 PWA0009.jpg

Version PowerApps.

Démarrer PowerApps.

Démarrer un canevas vierge.

Cliquer sur Application vide.

PWA0010.jpg 

PWA0011.jpg 

Insérer une table de données.

PWA0012.jpg 

Cliquer sur se connecter aux données et ajouter la source de données souhaitée.


PWA0013.jpg 

PWA0014.jpg 

Sélectionner ou masquer les champs à afficher.

PWA0015.jpg 

PWA0016.jpg 

Publier.


janv. 09
Format JSON de colonnes SharePoint

Fin 2017 SharePoint online a progressé de manière spectaculaire et surpasse peut-être déjà la version 2016 serveur.

 

Dans cet article nous allons voir la nouvelle possibilité offerte par SharePoint pour personnaliser la mise en forme des colonnes d'une liste.

 

Nous nous sommes appuyé sur l'excellent « doc » Microsoft que nous avons évidemment testé : https://docs.microsoft.com/fr-fr/sharepoint/dev/declarative-customization/column-formatting

 

Nous avons utilisé une liste personnalisée relativement simple qui en présentation standard arbore l'aspect ci-dessous :

JSON001.jpg

 

Il s'agit d'une liste d'activités d'un projet comportant les colonnes suivantes :

 JSON002.jpg

Un pourcentage d'avancement

Un statut

Une date de début prévisionnelle

Une date de fin Prévisionnelle

Un domaine de référence

Un responsable de l'activité

Un nombre de semaines supplémentaire à prévoir

Un budget initial

Un budget nouvellement évalué

 

Les données ont été créées uniquement afin de mettre en application les mises en forme nouvellement offerte par SharePoint ; la cohérence fonctionnelle étant toute relative.

Si nous affichons les paramètres de certaines colonnes nous constatons, désormais, une nouvelle zone paramétrable : Mise en forme de la colonne.

Cette nouvelle zone exploite désormais le format JSON pour personnaliser le rendu de la colonne dans l'affichage que je qualifierais de « enrichi ».

JSON003.jpg

En format enrichi, nous pouvons constater une expérience d'affichage étonnante :

JSON004.jpg

Ceci est rendu possible grâce à l'application d'un format JSON pour chaque colonne.

JSON ne modifie en rien les données de la liste mais simplement la façon dont celles-ci sont présentées.

Le principal intérêt de ce format est de pouvoir ainsi créer des mises en forme conditionnelles des plus simples aux plus complexes.

Il s'agit donc d'utiliser JSON pour appliquer des styles, des classes et des icônes aux champs, en fonction de la valeur contenu par ces champs.

 

Rentrons tout de suite dans le vif du sujet : c'est la meilleure façon de découvrir JSON et cette nouvelle fonctionnalité SharePoint Online.

Pour tester ces exemples il vous suffit de créer une liste personnalisée sur le même modèle que celle présentée avec des colonnes de mêmes noms et de mêmes types puis copier, coller et enregistrer les formats JSON.

 

Mise en forme conditionnelle sur une plage de nombre.

Il s'agit ici de mettre en forme le pourcentage d'avancement ; si ce pourcentage est inférieur ou égal à 70 % alors on applique la classe "sp-field-severity--warning"

 

Deux façons d'injecter le code JSON dans la colonne soit en passant par paramètre de la colonne (voir plus haut) soit directement en ligne en cliquant sur mettre en forme cette colonne et en utilisant la zone volet d'information (avantage du volet ; il existe un aperçu).

 JSON005.jpg

JSON006.jpg

 

Personnellement je préfère passer par paramètre de la colonne ; le volet étant pour l'instant perfectible.

Copier le code et enregistrer l'effet visuel est immédiat. Et c'est magique.

 

{

   "elmType": "div",

   "txtContent": "@currentField",

   "attributes": {

      "class": {

         "operator": "?",

         "operands": [

            {

               "operator": "<=",

               "operands": [

                  "@currentField",

                  70

               ]

            },

            "sp-field-severity--warning",

            ""

         ]

      }

   }

}

JSON007.jpg                 JSON008.jpg         

La version avec un icône d'information.

JSON009.jpg
 

Et le code s'y rapportant :

{

    "$schema": "http://columnformatting.sharepointpnp.com/columnFormattingSchema.json",

    "debugMode": true,

    "elmType": "div",

    "attributes": {

       "class": {

          "operator": "?",

          "operands": [

             {

                "operator": "<=",

                "operands": [

                   "@currentField",

                   70

                ]

             },

             "sp-field-severity--warning",

             ""

          ]

       }

    },

    "children": [

        {

            "elmType": "span",

            "style": {

                "display": "inline-block",

                "padding": "0 4px"

            },

            "attributes": {

                "iconName": {

                    "operator": "?",

                    "operands": [

                        {

                            "operator": "<=",

                            "operands": [

                                "@currentField",                 

                                70

                            ]

                        },

                        "Error",

                        ""

                    ]

                }

            }

        },

        {

            "elmType": "span",

            "txtContent": "@currentField"

        }

    ]

}

Plus de détail dans l'article originel : https://github.com/SharePoint/sp-dev-docs/blob/master/docs/declarative-customization/column-formatting.md#conditional-formatting-based-on-a-number-range-basic

Il ne s'agit pas ici de refaire ce brillant article mais tout simplement de vous inciter à découvrir, tester et personnaliser par vous-mêmes les exemples

Avant de passer à un autre exemple, j'en profite pour vous montrer à quel point la version online est en avance sur la version serveur.

Il est désormais possible de modifier la largeur des colonnes en lignes en faisant glisser les limites de celles-ci :

JSON010.jpg         JSON011.jpg

Le bouton gauche de votre souris (clic sur la colonne) vous donne accès à de nouvelles fonctionnalités.

A tester absolument. C'est bluffant.

 JSON012.jpg

Le bouton droit de la souris dans la zone d'affichage de la liste  renvoi aux fonctionnalités du bandeau Liste.

 JSON013.jpg

JSON014.jpg 

A noter PowerApps/Personnaliser les formulaires que nous testerons prochainement.

Le bouton droit de la souris sur une ligne de la liste donne des fonctionnalités liées à l'élément.

JSON015.jpg 


En particulier la possibilité d'obtenir un lien, de le copier et ou/de le partager avec éventuellement des personnes externes.

JSON016.jpg
 

JSON017.jpg
 

Mise en forme conditionnelle sur une plage de choix.

Il s'agit de la zone statut en version française

Terminé

En cours

En revue

A des problèmes

Bloqué

Copier, coller et enregistrer le code.

 

{

    "$schema": "http://columnformatting.sharepointpnp.com/columnFormattingSchema.json",

    "debugMode": true,

    "elmType": "div",

    "attributes": {

        "class": {

            "operator": "?",

            "operands": [

                {

                    "operator": "==",

                    "operands": [

                        {

                            "operator": "toString()",

                            "operands": [

                                "@currentField"

                            ]

                        },

                        "Terminé"

                    ]

                },

                "sp-field-severity--good",

                {

                    "operator": "?",

                    "operands": [

                        {

                            "operator": "==",

                            "operands": [

                                {

                                    "operator": "toString()",

                                    "operands": [

                                        "@currentField"

                                    ]

                                },

                                "En cours"

                            ]

                        },

                        "sp-field-severity--low",

                        {

                            "operator": "?",

                            "operands": [

                                {

                                    "operator": "==",

                                    "operands": [

                                        {

                                            "operator": "toString()",

                                            "operands": [

                                                "@currentField"

                                            ]

                                        },

                                        "En revue"

                                    ]

                                },

                                "sp-field-severity--warning",

                                {

                                    "operator": "?",

                                    "operands": [

                                        {

                                            "operator": "==",

                                            "operands": [

                                                {

                                                    "operator": "toString()",

                                                    "operands": [

                                                        "@currentField"

                                                    ]

                                                },

                                                "Bloqué"

                                            ]

                                        },

                                        "sp-field-severity--severeWarning",

                                        "sp-field-severity--blocked"

                                    ]

                                }

                            ]

                        }

                    ]

                }

            ]

        }

    },

    "children": [

        {

            "elmType": "span",

            "style": {

                "display": "inline-block",

                "padding": "0 4px"

            },

            "attributes": {

                "iconName": {

                    "operator": "?",

                    "operands": [

                        {

                            "operator": "==",

                            "operands": [

                                {

                                    "operator": "toString()",

                                    "operands": [

                                        "@currentField"

                                    ]

                                },

                                "Terminé"

                            ]

                        },

                        "CheckMark",

                        {

                            "operator": "?",

                            "operands": [

                                {

                                    "operator": "==",

                                    "operands": [

                                        {

                                            "operator": "toString()",

                                            "operands": [

                                                "@currentField"

                                            ]

                                        },

                                        "En cours"

                                    ]

                                },

                                "Forward",

                                {

                                    "operator": "?",

                                    "operands": [

                                        {

                                            "operator": "==",

                                            "operands": [

                                                {

                                                    "operator": "toString()",

                                                    "operands": [

                                                        "@currentField"

                                                    ]

                                                },

                                                "En revue"

                                            ]

                                        },

                                        "Error",

                                        {

                                            "operator": "?",

                                            "operands": [

                                                {

                                                    "operator": "==",

                                                    "operands": [

                                                        {

                                                            "operator": "toString()",

                                                            "operands": [

                                                                "@currentField"

                                                            ]

                                                        },

                                                        "A des problèmes"

                                                    ]

                                                },

                                                "Warning",

                                                "ErrorBadge"

                                            ]

                                        }

                                    ]

                                }

                            ]

                        }

                    ]

                }

            }

        },

        {

            "elmType": "span",

            "txtContent": "@currentField"

        }

    ]

}

Résultat attendu :

JSON018.jpg

Plus de détail sur : https://github.com/SharePoint/sp-dev-docs/blob/master/docs/declarative-customization/column-formatting.md#conditional-formatting-based-on-the-value-in-a-text-or-choice-field-advanced

Mise en forme conditionnelle sur une date

Mise en forme de la donnée Date_de_fin par rapport à la date du jour @now.

{

 

   "elmType": "div",

   "txtContent": "@currentField",

   "style": {

      "color": {

         "operator": "?",

         "operands": [

            {

               "operator": "<=",

               "operands": [

                  "[$Date_de_fin]",

                  "@now"

               ]

            },

            "#ff0000",

            ""

         ]

      }

   }

}

 

Mise en forme conditionnelle de la donnée Date_début_prev par rapport à une date fixe.

A noter que les caractères spéciaux dans les noms sont à éviter sinon les traduire comme ci-dessous :

Date_d_x00e9_but_prev

En cas de caractères spéciaux pour trouver le nom à reporter, aller dans paramètres de liste et copier le lien hypertexte associé à la colonne concernée

https://trupel.sharepoint.com/_layouts/15/FldEdit.aspx?List=%7BCAF2DB5E%2D40EE%2D44D5%2DBDF5%2DA371EB633666%7D&Field=Date%5Fd%5Fx00e9%5Fbut%5Fprev

{

   "elmType": "div",

   "txtContent": "@currentField",

   "style": {

      "color": {

         "operator": "?",

         "operands": [

            {

               "operator": "<=",

               "operands": [

                  "[$Date_d_x00e9_but_prev]",

                  {

                     "operator": "Date()",

                     "operands": [

                        "6/01/2017"

                     ]

                  }

               ]

            },

            "#ff0000",

            ""

         ]

      }

   }

}

 

Copier, coller et enregistrer.

JSON019.jpg 

Pour plus de détail : https://github.com/SharePoint/sp-dev-docs/blob/master/docs/declarative-customization/column-formatting.md#apply-formatting-based-on-date-ranges

Mise en forme d'une donnée au format lien hypertexte

Il s'agit d'associer à la valeur d'un champ un lien hypertexte en correspondance avec la valeur du champ.

JSON020.jpg 

{

   "elmType": "a",

   "txtContent": "@currentField",

   "attributes": {

      "target": "_blank",

      "href": {

         "operator": "+",

         "operands": [

            "https://trupel.com/",

            "@currentField"

         ]

      }

   }

}

Copier, coller et enregistrer. Puis cliquer sur le nom de domaine d'une activité.

 

Mise en forme d'une donnée de type personne

 

Ici il ne s'agit pas seulement d'une mise en forme conditionnelle à proprement parlé mais de l'ajout d'une action rapide sp-field-quickAction ; le clic sur l'icône associé à la donnée Responsable autorise l'ouverture de l'application par défaut associée à mailto et pré-affiche au destinataire spécifié dans la colonne un message préétabli.

 

{

    "elmType": "div",

    "children": [

        {

            "elmType": "span",

            "style": {

                "padding-right": "8px"

            },

            "txtContent": "@currentField.title"

        },

        {

            "elmType": "a",

            "attributes": {

                "iconName": "Mail",

                "class": "sp-field-quickAction",

                "href": {

                    "operator": "+",

                    "operands": [

                        "mailto:",

                        "@currentField.email",

                        "?subject=Etat d'avancement&body=Bonjour\r\nVeuillez trouver ci-dessous l'état d'avancement de mon activité.\r\n---\r\n",

                        "@currentField.title",

                        "\r\nPour plus de détail cliquer sur lien ci-dessous. https://trupel.sharepoint.com/Lists/MyNewList/DispForm.aspx?ID=",

                        "[$ID]"

                    ]

                }

            }

        }

    ]

}

Copier, coller et enregistrer. Cliquer sur l'icône. Le résultat est bluffant.

JSON021.jpgPour plus de détail : https://github.com/SharePoint/sp-dev-docs/blob/master/docs/declarative-customization/column-formatting.md#add-an-action-button-to-a-field-advanced

 

Mise en forme conditionnelle d'un nombre au format barre de donnée

 

Il s'agit ici de présenter des données de type nombre au format barre de donnée.

 

Cette mise en forme est moins probante que celles précédentes ; application de la class sp-field-dataBars

{

  "debugMode": true,

  "elmType": "div",

  "txtContent": "@currentField",

  "attributes": {

   "class": "sp-field-dataBars"

  },

  "style": {

    "width": {

      "operator": "?",

      "operands": [

        {

          "operator": ">",

          "operands": [

            "@currentField",

            "20"

          ]

        },

        "100%",

        {

          "operator": "+",

          "operands": [

            {

              "operator": "toString()",

              "operands": [

                {

                  "operator": "*",

                  "operands": [

                    "@currentField",

                    5

                  ]

                }

              ]

            },

            "%"

          ]

        }

      ]

    }

  }

}

Copier, coller et enregistrer. Ce n'est pas mon préféré.


Pour plus de détail : https://github.com/SharePoint/sp-dev-docs/blob/master/docs/declarative-customization/column-formatting.md#create-simple-data-visualizations

 

Mise en forme conditionnelle de type tendance

 

Il s'agit ici de comparer deux types d'information et d'en déduire une tendance d'évolution :

Classe sp-field-trending—up si l'évolution est à la hausse, classe sp-field-trending—down si l'évolution est la baisse ; accompagnée des icônes idoines.

 JSON023.jpg

{

    "debugMode": true,

    "elmType": "div",

    "children": [

        {

            "elmType": "span",

            "attributes": {

                "class": {

                    "operator": "?",

                    "operands": [

                        {

                            "operator": ">",

                            "operands": [

                                "[$BudgetE]",

                                "[$BudgetI]"

                            ]

                        },

                        "sp-field-trending--up",

                        "sp-field-trending--down"

                    ]

                },

                "iconName": {

                    "operator": "?",

                    "operands": [

                        {

                            "operator": ">",

                            "operands": [

                                "[$BudgetE]",

                                "[$BudgetI]"

                            ]

                        },

                        "SortUp",

                        {

                            "operator": "?",

                            "operands": [

                                {

                                    "operator": "<",

                                    "operands": [

                                        "[$BudgetE]",

                                        "[$BudgetI]"

                                    ]

                                },

                                "SortDown",

                                ""

                            ]

                        }

                    ]

                }

            }

        },

        {

            "elmType": "span",

            "txtContent": "[$BudgetE]"

        }

    ]

}

Pour plus de détail : https://github.com/SharePoint/sp-dev-docs/blob/master/docs/declarative-customization/column-formatting.md#show-trending-uptrending-down-icons-advanced

 

Et maintenant ?

Faire ses propres formats JSON en s'inspirant des exemples ci-dessus et  d'autres existants.

Tous les liens.

https://docs.microsoft.com/fr-fr/sharepoint/dev/declarative-customization/column-formatting#creating-custom-json

https://github.com/SharePoint/sp-dev-docs/blob/master/docs/declarative-customization/column-formatting.md#supported-column-types

https://github.com/SharePoint/sp-dev-column-formatting

https://code.visualstudio.com/Docs/languages/json

Et se constituer une bibliothèque de JSON prêt à l'emploi pour les utiliser à bon escient en fonction des demandes de vos utilisateurs.

 

 

 

août 14
C’est l’été – A fond le Forms !!!

Ou comment créer une enquête web en 30 minutes pour sonder 5000 personnes avec Microsoft Forms 

Se connecter sur : https://forms.office.com avec son compte Microsoft.

Remarque d'importance :

Microsoft Forms est une application de base et légère pour collecter rapidement des informations via les enquêtes et quiz.

Microsoft Forms ne remplace pas InfoPath.

Mise en route rapide par l'image :

  • créer le formulaire : titre et sous-titre,
  • ajouter les questions (neuf choix sont possibles),
  • personnaliser les questions et l'enquête (gestion des branchements),
  • paramètrer le formulaire,
  • partager le formulaire,
  • analyser les réponses.

Créer le formulaire :


ID84001.jpg Cliquer sur : Nouveau formulaire.

 ID84002.jpg

Insérer un titre et un sous-titre


ID84003.jpg 

Ajouter une question


ID84004.jpg 

Neuf types de questions possibles.

Question choix - une seule réponse possible


ID84005.jpg ID84006.jpg

 

Question choix - plusieurs réponses possibles 


ID84007.jpg 

ID84008.jpg

Question libre – réponse courte


ID84009.jpg 

ID84010.jpg


Question libre – réponse longue


ID84011.jpg 

ID84012.jpg

Question libre – réponse nombre avec restriction

 

ID84013.jpg

 ID84014.jpg

Question Evaluation – réponse 5 niveaux étoiles


ID84015.jpg 

ID84016.jpg

Question Evaluation – réponse 10 niveaux avec chiffres


ID84017.jpg 

ID84018.jpg

Question Date – réponse choix d'une date


ID84019.jpg 

ID84020.jpg

Question classement – réponse classement des informations par ordre préférentiel


ID84021.jpg

ID84022.jpg

Personnalisation


Choix d'un multimédia


ID84023.jpg Pour en savoir plus


Rendre la réponse obligatoire

 

ID84024.jpg

Scénario de branchements


Permet d'élaborer plusieurs scénarii de réponses possibles en fonction du choix des personnes sondées.

ID84025.jpg Pour en savoir plus


Choisir un thème


ID84026.jpg 

 

Visualiser l'aperçu tout au long de la construction de l'enquête


ID84027.jpg 

 

ID84028.jpg 

ID84029.jpg

Tester votre enquête

 

Cliquer sur Envoyer pour finaliser les réponses en corrigeant avant les erreurs.

 ID84030.jpg

ID84031.jpg

Paramétrer votre enquête


 ID84032.jpg

 Pour en savoir plus

Partager en vue d'une mise en production

 

 ID84033.jpg

 ID84035.jpg

 ID84036.jpg

ID84038.jpg 

Pour en savoir plus

Le support Microsoft

 

https://support.office.com/fr-FR/client/results?Shownav=true&lcid=1036&ns=microsoftforms&version=16&omkt=fr-FR&ver=16&mode=Touch

Visualiser les réponses par l'administrateur


ID84039.jpg 

 

Exporter vers Excel ou Pdf


ID84040.jpg 

 

1 - 10Suivante
À propos de ce blog
Non, ce n'est pas vraiment ma photo. Je n'ai simplement pas eu le temps de mettre à jour cette section. Il est quand même bon de savoir que quelqu'un me lit entièrement. Merci !