Filtrage avancé

Défini AllowFiltering="true" (allowFiltering dans React ) et la barre d’outils de la grille reçoit un bouton Filtre , qui ouvre les propres filtres de la vue dans le constructeur de requêtes FetchXML pour que l’utilisateur puisse les modifier. Tout ce que FetchXML peut filtrer peut être construit : des conditions sur les colonnes de la table, regroupées avec ET et OU, comparées à une valeur ou à une autre colonne, et tables associées — qu’un enregistrement lié existe, ou qu’une condition correspondante soit elle-même. Seules les colonnes et tables associées que l’utilisateur peut lire sont proposées, et le serveur refuse un filtre sur tout autre sujet. Les filtres de l’utilisateur durent pendant que la grille affiche la vue : une autre vue commence à partir de la sienne.

Filtrage des contacts d’échantillons

Appuyez sur le bouton Filtrer dans la barre d’outils. La boîte de dialogue s’ouvre sur les filtres de la vue affichée par la grille. Tous les contacts n’en ont pas — la sécurité des lignes de la table des contacts conserve déjà toutes les requêtes vers les contacts que vous pouvez lire — elle s’ouvre donc vide, prête pour la vôtre. Les contacts dans les entreprises avec une ville conservent ceux dont l’entreprise a une ville, via une table associée avec une condition propre. Changez-les, appuyez sur Appliquer, et la grille affiche les lignes correspondantes à la première page, son bouton Filtre rempli pour indiquer que les filtres sont les vôtres. Choses à essayer :

  • Ouvrez le menu d’une colonne — la flèche dans son en-tête — et choisissez Filtrer par pour filtrer uniquement sur cette colonne : une valeur équivalente au début, ou le jour d’une date. Son en-tête affiche une icône de filtre pendant que les lignes sont filtrées, et la condition est présente avec le reste dans la boîte de dialogue Filtrer . Effacer le filtre, dans le même menu, l’enlever.
  • Ajoutez une ligne et choisissez une colonne, un opérateur et une valeur — Contient quelques lettres d’un nom, par exemple, ou un ancien supérieur à 40 ans. L’éditeur de valeurs suit la colonne : un sélecteur de date pour une date, une liste pour un choix, un sélecteur d’enregistrement pour une recherche.
  • Ajoutez un groupe pour combiner les conditions sous Match any (OR) ou Match all (ET), imbriqué aussi profondément que nécessaire.
  • Changez une ligne de By value à By pour comparer deux colonnes du contact.
  • Choisissez Ajouter une entité liée et choisissez une relation — par exemple l’entreprise du contact — puis donnez-lui ses propres conditions, ou changez Must have en A pas de ligne liée pour conserver les contacts sans tel enregistrement, ou en Ne possède pas de ligne correspondante pour conserver ceux sans correspondance aux conditions. Seules les tables que vous pouvez lire sont listées.
  • Ouvrez à nouveau la boîte de dialogue et appuyez sur Réinitialiser pour voir afin de revenir aux filtres propres à la vue, ou choisissez l’autre vue, qui commence par la sienne.
Exemple de réaction Exemple de Blazor React TypeScript Razor

Une vue qui filtre ce que l’utilisateur ne peut pas lire

Contacts des propriétaires actifs conserve les contacts dont le compte utilisateur du propriétaire est activé, via une table associée — utilisateurs système — à laquelle la démo n’accorde aucun accès à ses visiteurs. Plutôt que d’afficher tous les contacts (le filtre étant exclu) ou aucun (la table associée ne correspond pas à aucune ligne), la grille indique sur quelle table elle ne peut pas filtrer, afin que le développeur puisse y donner accès aux utilisateurs ou modifier la vue. Ouvrez la boîte de dialogue Filtrer et emmenez le propriétaire voir les lignes : la boîte de dialogue affiche la table associée à la vue, mais n’offre aucun utilisateur système à ajouter. Un utilisateur interne connecté à la démo, dont les propres rôles de sécurité Dataverse décident ce qu’il lit, voit les lignes.

Exemple de réaction Exemple de Blazor React TypeScript Razor