Table des matières
La fonctionnalité des filtres de l’utilisateur permet de créer des filtres avancés supplémentaires. La fenêtre Filtres utilisateur permet de construire des filtres sur la base des champs prédéfinis et à l’aide de l’expression SQL.
Pour ouvrir la fenêtre Filtres utilisateur, allez dans le menu Configuration → Outils → Filtres ou cliquez sur l’icône de l’engrenage dans la section du filtre sur la liste donnée.
La fenêtre Filtres utilisateur se compose de l’arborescence d’objets pour lesquels on peut définir des filtres. Le système permet l’aperçu des filtres définis pour chaque zone à l’aide du bouton [>] qui est situé à côté du nom de l’objet donné. À droite, vous trouverez le formulaire permettant de définir le filtre donné. L’onglet Créateur permet de créer un nouveau filtre. Par contre, l’onglet Groupes d’opérateurs permet de gérer sa disponibilité pour les opérateurs choisis.
Outre les boutons standard d’enregistrement des modifications et de fermeture de la fenêtre, le ruban de la fenêtre Filtres utilisateur comprend également les boutons qui permettent d’ajouter et de supprimer le filtre de la liste (de l’arborescence des zones système).
Vous pouvez aussi copier le filtre ajouté à l’objet donné dans le système. Pour cela, sélectionnez un élément dans l’arborescence des filtres et ensuite cliquez sur le bouton [Copier]. Puis, indiquez un autre objet dans l’arborescence et cliquez sur le bouton [Coller]. N’oubliez pas que lors de la copie du filtre, les valeurs des champs utilisés dans le filtrage peuvent être différentes. Vous devriez les vérifier ou spécifier de nouveau et enregistrer des modifications.
Les boutons [Annuler]/[Rétablir] permettent à l’utilisateur d’annuler ou de rétablir la dernière modification effectuée dans le créateur des filtres. Le bouton [Effacer], permet à son tour d’effacer toutes les modifications apportées et de commencer la nouvelle création du filtre. Ces options sont aussi disponibles dans l’espace Modification dans l’onglet Créateur ([<-] / [->] / [<>]).
Définir un nouveau filtre
Si vous voulez définir un nouveau filtre dans la fenêtre Filtres utilisateur, sélectionnez la liste ou l’objet auquel le nouveau filtre sera ajouté. Ensuite, cliquez sur le bouton [Ajouter] soit dans le ruban soit au-dessus de la liste des objets.
Tapez le nom du filtre et la description (option facultative) dans l’en-tête du formulaire de définition du filtre donné.
La section Expressions mémorisées permet de conserver temporairement les expressions créées au préalable dans le cadre du même filtre. Pour le faire, glissez l’expression en cliquant sur l’un des lieux marqués en rouge dans la figure ci-dessous et ensuite déposez-le dans la section Expressions mémorisées.
L’expression mémorisée peut être utilisée pour remplir automatiquement un filtre défini pour la même zone du système. Il est possible aussi d’utiliser une expression mémorisée dans le filtre créé pour un autre lieu. Toutefois, il ne faut pas oublier que le champ avec le nom de la colonne sera vide si le lieu donné empêche la détermination du nom de la colonne spécifié dans l’expression mémorisée.
Si vous voulez utiliser une expression mémorisée, faites-le glisser sur la section Filtre.
La section Paramètres permet de définir des paramètres supplémentaires utilisés par le filtre avec leurs valeurs par défaut. La description détaillée du fonctionnement des paramètres se trouve dans le chapitre Créer un nouveau filtre avec des paramètres.
Vous pouvez créer un filtre de manière suivante :- Sélectionner des champs prédéfinis
- Sélectionner une expression SQL et taper des conditions de fin
- Combiner les types mentionnés ci-dessus
Créer un nouveau filtre à partir des champs prédéfinis
Pour créer un filtre à partir des champs prédéfinis, faites glisser le bouton [Valeur du champ] depuis la section Conditions vers la section Filtre. Ce champ peut être aussi ajouté via le menu contextuel ouvert après un clic droit de la souris à l’aide de l’option [Insérer une condition pour la valeur du champ].
Voici les étapes de création du filtre à l’aide du bouton [Valeur du champ] :
- Après avoir déplacé le bouton [Valeur du champ], le système permet de sélectionner l’une des colonnes, disponibles dans la base de données pour la liste des objets, selon laquelle le filtrage sera effectué.
- Le champ suivant doit être rempli par un opérateur logique sélectionné à partir de la liste. Il permet de spécifier le mode dans lequel la valeur de la colonne choisie sera comparée à la valeur saisie par l’opérateur.
- Saisissez dans le dernier champ une valeur qui sera comparée aux valeurs de la colonne sélectionnée ou spécifiez un paramètre que l’on peut modifier à chaque démarrage du filtre.
Le filtre où la colonne et l’opérateur sont sélectionnés et la valeur est saisie peut être enregistré et utilisé sur la liste des objets en question.
Créer un nouveau filtre avec une expression SQL
Pour créer un filtre avec une expression SQL, faites glisser le bouton [Expression SQL] depuis la section Conditions vers la section Filtre.
Le champ SQL se base sur la requête suivante :
SELECT [colonnes] FROM [tableau] WHERE [filtre défini]
Compte tenu de cela, il faut définir dans le champ SQL uniquement une partie de la requête tapée après le mot WHERE, car la première partie se réfère au tableau qui affiche la liste pour laquelle le filtre est créé (il ne faut pas taper les mots clés SELECT et WHERE).
L’utilisateur crée un filtre dont la tâche est d’afficher toutes les factures client qui ont été générées à partir de la commande client (COMC). Pour cela, il faut saisir dans le champ SQL la requête suivante définie pour la liste des factures client :
{NumberString} IN
(SELECT FS.NumberString FROM Sales.Headers FS
INNER JOIN Sales.DocumentHeaderRelations HR ON FS.ID = HR.ChildHeaderID
INNER JOIN Sales.Headers ZS ON ZS.ID = HR.ParentHeaderID
INNER JOIN DT.DocumentTypes DT ON DT.ID = ZS.DocumentTypesID AND DT.NamespaceEntry = ‘Comarch.B2.Sales.Documents.SalesOrderManager’)
Il est possible aussi d’utiliser dans la requête les données d’un autre tableau – dans ce cas, il est nécessaire de se référer aux noms relatifs à ce tableau, par exemple :
EXISTS (SELECT * FROM Dictionaries.Parameters WHERE InternalName = ‘DefaultLanguage’ AND Value = ‘1’)
Le champ SQL peut être aussi ajouté via le menu contextuel ouvert après un clic droit de la souris à l’aide de l’option [Insérer une expression SQL].
Créer un nouveau filtre à l’aide de la combinaison conditionnelle des expressions
Le créateur du filtre permet de combiner les conditions de filtrage à l’aide des opérateurs logiques : Ou, Et, Non qui se trouvent dans la section Expressions.
L’expression liée par l’opérateur Ou affiche tous les objets qui répondent à la première ou à la deuxième condition saisie dans cette expression. L’objet donné sera affiché après avoir rempli au moins une condition.
L’expression liée par l’opérateur Et affiche tous les objets qui répondent au premier et au deuxième condition saisie dans cette expression. L’objet donné ne sera pas affiché si au moins une condition ne soit pas remplie.
L’expression avec l’opérateur Non affiche tous les objets qui ne remplissent pas la condition saisie dans l’expression.
Le système permet la combinaison libre des opérateurs logiques et leur imbrication. Vous pouvez le faire tout en ajoutant en premier ordre les opérateurs les plus externes et en saisissant entre eux les opérateurs internes ou en imbriquant les expressions dans l’opérateur à l’aide du menu contextuel.
L’utilisateur a besoin d’un filtre qui cherche sur la liste des factures client les documents créés le 14 ou 15 janvier 2018 pour le client/fournisseur Studio K. Pour ajouter un tel filtre, l’utilisateur effectue les opérations suivantes :
- L’utilisateur ajoute un nouveau filtre pour la liste des factures client dans la fenêtre du créateur du filtre
- L’utilisateur ajoute un opérateur le plus externe – Et, en le glissant vers le champ Filtre ou en utilisant l’option dans le menu contextuel
- L’utilisateur ajoute un opérateur Ou, dans le champ de la première expression en le glissant depuis la section Expressions ou en utilisant l’option dans le menu contextuel
- L’utilisateur fait glisser ou sélectionne à partir du menu contextuel la condition Valeur du champ pour les deux champs séparés d’un opérateur Ou, sélectionne l’option DocumentDate pour les deux conditions et il définit les dates comme suit 14-Jan-2018 et 15-Jan-2018
- L’utilisateur fait glisser ou sélectionne à partir du menu contextuel la condition Valeur du champ sélectionne l’option CustomerName et définit le nom du client/fournisseur comme Studio K
Après ces opérations, l’utilisateur ajoute le filtre aux groupes d’opérateurs sélectionnés dans l’onglet Groupes d’opérateurs, saisit le nom du filtre et l’enregistre.
Créer un nouveau filtre avec des paramètres
Dans la partie inférieure de la fenêtre du créateur des filtres, il y a un champ de définition des paramètres. Pour ajouter un nouveau paramètre, utilisez le bouton [Ajouter] qui se trouve dans le groupe de boutons Paramètres. Après l’ajout d’un nouveau paramètre, il est possible de taper son nom, type et la valeur par défaut qui sera utilisée en cas d’absence de valeur tapée par l’opérateur.
Après avoir défini le paramètre, il peut être utilisé via l’option [Insérer un paramètre] disponible dans le menu contextuel après un clic droit de la souris sur le champ de la requête SQL ou le champ prédéfini. Il est possible aussi d’utiliser l’expression {param: nom_paramètre} dans le champ de la requête SQL.
Après avoir enregistré le filtre, il est possible de modifier la valeur du paramètre. Une fois le filtre sélectionné sur la liste des objets pour lesquels il a été créé, le bouton (icône) [P] s’affichera du côté droit.
Une fois le bouton [P] cliqué, le système ouvre la fenêtre qui permet de spécifier les valeurs des paramètres qui seront utilisées lors du filtrage suivant.
Presse-papiers
Le créateur des filtres dispose d’un presse-papiers qui sert à conserver temporairement les expressions SQL définies ou les champs prédéfinis. Une fois vous définissez une expression SQL ou un champ prédéfini, vous pouvez les déplacer à la fenêtre Expressions mémorisées (presse-papiers) en faisant glisser l’expression avec le bouton gauche de la souris. Si vous voulez utiliser de nouveau l’expression stockée dans le presse-papiers, faite-la glisser de la même manière depuis le presse-papiers sur le champ de définition du filtre.
Ajouter un groupe d’opérateurs
Le filtre sera disponible à sélectionner au-dessous de la liste des objets si l’utilisateur connecté appartient au groupe d’opérateurs qui a été ajouté au filtre dans l’onglet Groupes d’opérateurs.
Pour ajouter un groupe d’opérateurs à un filtre, passez à l’onglet Groupes d’opérateurs, cliquez sur le bouton [Ajouter], indiquez le groupe d’opérateurs à partir de la liste des groupes disponibles et cliquez sur le bouton [Sélectionner].
En plus, vous pouvez décider si pour le groupe d’opérateurs le filtre donné sera :
- Obligatoire – une fois vous cochez le paramètre, la liste des objets sera automatiquement filtrée pour l’utilisateur appartenant à ce groupe d’opérateurs. L’utilisateur peut sélectionner un autre filtre disponible pour filtrer la liste – le filtre obligatoire et le filtre sélectionné par l’utilisateur se lient par l’opération AND („et”)
- Par défaut – une fois le paramètre coché, la liste des objets sera automatiquement filtrée pour l’utilisateur appartenant à ce groupe d’opérateurs et l’information sur le filtre sélectionné est affichée pour l’opérateur. L’utilisateur peut sélectionner un autre filtre disponible pour filtrer la liste. Uniquement un filtre peut être défini comme par défaut pour le groupe d’opérateurs donné.
Onglet Filtres dans le formulaire du groupe d’opérateurs
L’onglet Filtres est disponible dans le formulaire du groupe d’opérateurs. Cet onglet comprend tous les filtres définis pour le groupe d’opérateurs en question.
Outre la modification du filtre possible au niveau de cet onglet, vous pouvez aussi sélectionner le bouton [Liste] qui renvoie l’opérateur directement vers la liste des filtres. À partir de ce niveau-là, vous pouvez définir un nouveau filtre et l’ajouter à un groupe d’opérateurs.