STUDIO Filtres et Tris
Cette fonctionnalité a été actualisée en 04.16.22, voir ci-dessous.
Anciennes Versions | Documentation |
---|---|
04.16.00 |
A quoi servent les filtres et tris ?
Il est possible de filtrer et/ou trier les enregistrements d’une liste de données à partir de filtres et tris paramétrés qui utiliseront des champs de la table principale ou de tables liées.
Les filtres et tris sont définis par entité DIAPASON ( pour les commandes commerciales, les clients etc…). Les filtres et les tris sont définis dans la même application de “Définition Filtres & Tris”, et peuvent être combinés.
Par exemple ci-dessous on a définis 4 filtres et tris sur l’application des commandes, et on souhaite finalement filtrer par nom du client:
On a donc:
« Sélections Filtres et Tris » : permet de choisir une condition d'affichage définie sur la liste. Cette action n'est disponible que si des conditions ont été définies sur la liste. Le choix d'une condition modifie le contenu et l'ordre de la liste en fonction du filtre et du tri définis sur la condition. La condition en cours est marquée dans le menu « Sélections ».
Le choix d’une condition est également signalé par le soulignage des entêtes de colonne de la liste .
« Condition par défaut » : permet de revenir à la condition par défaut paramétrée sur l’application. Quand la condition en cours est la condition par défaut, celle-ci est marquée dans le menu contextuel de la liste et les entêtes de colonnes ne sont pas soulignées.
Cette condition par défaut pourra être un Filtre et Tri paramétré au démarrage.
« Propriété » (dans le menu “Sélections”): affiche une fenêtre d'informations sur la condition en cours.
On a donc différentes possibilités pour utiliser les filtres et tris:
filtrer sur l’entité courante (celle de l’application)
trier sur l’entité courante (celle de l’application)
cumuler filtre et tri sur l’entité courante
filtrer sur un ou plusieurs champs d’une entité annexe ( et de l’entité principale si besoin)
filtrer sur un ou plusieurs champs d’une entité annexe ( et de l’entité principale si besoin) + trier sur un champs de l’entité principale
Tous les filtres peuvent utiliser une ou plusieurs variables critères, (SCR et VCR). Une fiche critère sera alors affichée et permettra à l'utilisateur de renseigner les critères.
Comment définir un filtre et tris ?
Pour définir un filtre simple, aller dans « Définition Filtres et Tris » :
Puis, remplir l’onglet Définition comme ci-dessous:
|
Et remplir ensuite soit l’onglet « Filtre et tri », soit l’onglet “Filtre Multi-Tables”:
Pour aller plus loin…
L’onglet Critères permet de gérer le comportement des différentes variables critères utilisées dans les filtres (valeur défaut, obligation de saisie, PSD…). Les critères des "Filtres & Tris" sont paramétrables comme dans les Documents ou les Tableurs. La saisie peut être effectuée par une PSD de catégorie « CRI » au lieu de la saisie de critères classique pour gérer une intégrité particulière sur les critères.
Remplir le Filtre et Tri simple
Le filtre doit être saisie sous la forme d’une expression composée de champs de la table, de variables critères, d'opérateurs et de constantes.
On remplit ce champs soit en écrivant manuellement, soit en piochant les mots-clés utilisables à l'aide du bouton “Mots Clés“, et les critères à l’aide du bouton “Critères”:
Le champs Tri permet de spécifier les champs qui serviront à trier les enregistrements de la liste. L'aide sur le champ « Tri » donne la liste des champs de la table courante. Les mots-clés « CROISSANT » et « DECROISSANT » associé à un champ permettent de spécifier l'ordre du tri sur ce champ.
Les champs utilisés pour le tri doivent apparaître sans nom de table et être séparés par des espaces.
Le champs Index permet de renseigner l'index éventuel de la condition.
Exemples de filtres et tris simples
Type de filtre et tri | Que souhaite-t-on faire ? | Exemple |
Filtre sur l’entité courante | Je souhaite afficher les commandes réceptionnées ce jour | CDCoEn.CdeDateRecep = DATE-JOUR |
Tri sur l’entité courante | Je souhaite trier mes commandes par prix |
Sans précisions, le tri est croissant. Il est possible de préciser “CROISSANT” ou “ DECROISSANT” après le champs. |
Filtre et tri sur l’entité courante | On souhaite afficher les commandes d'un client triées par date de livraison décroissante. Le client sera saisi en critères par l’utilisateur ! | CDCoEn.CliGenRef = SCR.CliGenRef |
Remplir un filtre et tri multi-table
On peut remplir l’onglet « Filtre Multi-table », qui permet de créer une condition sur plusieurs tables.
Cas d’usage principaux:
Filtrer sur une entité liée à la table principale ( filtrer sur un champs du client à partir de la liste des commandes)
Filtrer sur une variable spécifique de l’entité courante
L'aide sur le champ “Filtre Tables liées” donne la liste des bases de DIAPASON.
On peut renseigner le champs “Filtre Tables liées” manuellement ou en piochant les tables dans le bouton Tables de la Base, les champs dans le bouton Champs Tables Liées, les critères dans le bouton « Critères » et les mots-clés dans le bouton « Mots Clés ».
Le filtre multi-tables utilise également les mots-clé « CHAQUE », « PREMIER » et « DERNIER » pour étendre la condition à d'autres tables que la table courante et le mot-clé « AVEC » pour introduire la condition.
Mot-clé | Syntaxe | Désignation |
CHAQUE | CHAQUE table | Permettent d’utiliser table dans la condition |
PREMIER | PREMIER table | |
DERNIER | DERNIER table | |
AVEC | AVEC cond | Applique la condition cond aux tables spécifiées par les mots-clés « CHAQUE », « PREMIER » et « DERNIER » |
Buffers Liés: Pas à saisir. Cette zone présente la liste des tables utilisées dans le filtre multi-tables
Le champs Tri Tables Principales permet de spécifier les champs de la table principale qui serviront à trier les enregistrements de la liste. L'aide sur le champ « Tri » donne la liste des champs de la table courante. Les mots-clés « CROISSANT » et « DECROISSANT » associé à un champ permettent de spécifier l'ordre du tri sur ce champ.
Les champs utilisés pour le tri doivent apparaître sans nom de table et être séparés par des espaces.
Exemples de filtres et tris multiples
Type de filtre et tri | Que souhaite-t-on faire ? | Exemple |
Filtre multi-tables sur une variable spécifique | On souhaite filtrer sur les commandes non complètes. Ce champs est une variable spécifique au format logique. | CHAQUE CDCoEnSp AVEC CDCoEnSp.RefSocApp = CDCoEn.RefSocApp AND CDCoEnSp.CdeNumCom = CDCoEn.CdeNumCom AND CDCoEnSp.DeRefChamp = "CdeComplete" AND CDCoEnSp.ValLogChamp = FAUX AND CdCoEn.CdeSolSta = FALSE |
Filtre multi-table sur une entité liée avec tri sur la table principale | Je souhaite filtrer sur le nom du client qui sera saisi par l’utilisateur, et je souhaite afficher les résultats par date de réception croissante. | CHAQUE CDClient AVEC CDClient.RefSocApp = CDCoEn.RefSocApp ET CDClient.CliResRef = CDCoEn.CliResRef ET CDClient.CliGenRef = CDCoEn.CliGenRef ET CDClient.CliGenNom CONTIENT '*' + VCR.CliGenNom + '*' |
Filtre multi-table sur plusieurs entités liées | Je souhaite filtrer sur le nom d’un commercial qui sera saisi par l’utilisateur, et dont la référence correspond à une variable spécifique de la fiche client. | Ici, l’opérateur “,” permet de faire des jointures sur plusieurs tables ! CHAQUE CdClieSp AVEC CdClieSp.RefSocApp = CdCLient.RefSocApp ET CdClieSp.CliResRef = CdCLient.CliResRef ET CdClieSp.CliGenRef = CdCLient.CliGenRef ET CdClieSp.DeRefChamp = "CliComRefBois" , CHAQUE CDClComm AVEC CDClComm.RefSocApp = CDClient.RefSocApp ET CDClComm.CliComRef = CDCLIESP.ValAlpChamp ET CDClComm.CliComNom CONTIENT '' + VCR.CliComNom + '' |
Remarque : Attention, les enregistrements des variables spécifiques ne sont créés que si la valeur est mise à « vrai » à un moment. Ainsi, « a priori » la valeur « fausse » de la variable spécifique n’est pas stockée et ne peut donc pas être filtrée par ce biais.
Remarque : Pour tester une variable critère date à vide dans une condition, il est nécessaire d’écrire l’instruction de la manière suivante :
… ET STRING(VCR.Date) = ?
Syntaxe générale filtres et tris
On peut utiliser les mots-clés suivants:
Mot-clé | Syntaxe | Désignation |
* | n1 * n2 | Opérateur de multiplication |
+ | n1 + n2 | Opérateur d'addition |
- | n1 - n2 | Opérateur de soustraction |
/ | n1 / n2 | Opérateur de division |
= | n1 = n2 | Opérateur d'égalité |
ANNEE | ANNEE(date) | Renvoie l’année de la date passée en paramètre |
COMMENCEPAR | c1 COMMENCEPAR c2 | Renvoie vrai si la chaîne de caractère c1 commence par la chaîne de caractère c2 |
CONTIENT | c1 CONTIENT c2 | Renvoie vrai si la chaîne de caractère c1 contient la chaîne de caractère c2 |
DATE-JOUR | DATE-JOUR | Date courante |
DIFFERENT | n1 DIFFERENT n2 | Opérateur d'inégalité |
ET | cond1 ET cond2 | Renvoie vrai si les conditions cond1 et cond2 sont vraies |
EXP | EXP(n, p) | Renvoie n puissance p |
FAUX | FAUX | Valeur FAUX |
HEURE-ACT | HEURE-ACT | Heure courante |
INFERIEUR | n1 INFERIEUR n2 | Opérateur inférieur |
INFERIEUREGAL | n1 INFERIEUREGAL n2 | Opérateur inférieur ou égal |
LOG | LOG(n) | Renvoie le logarithme de n |
MAXIMUM | MAXIMUM(x1, …, xn) | Renvoie le plus grand des n paramètres |
MINIMUM | MINIMUM(x1, …, xn) | Renvoie le plus petit des n paramètres |
MODULO | x MODULO y | Renvoie le reste de la division entière de x par y |
MOIS | MOIS(date) | Renvoie le mois de la date passée en paramètre |
OU | cond1 OU cond2 | Renvoie vrai si l'une des conditions cond1 ou cond2 est vraie |
PAR-FERM | PAR-FERM | Parenthèse fermante |
PAR-OUV | PAR-OUV | Parenthèse ouvrante |
SUPERIEUR | n1 SUPERIEUR n2 | Opérateur supérieur |
SUPERIEUREGAL | n1 SUPERIEUREGAL n2 | Opérateur supérieur ou égal |
UTIL | UTIL | Utilisateur courant |
VRAI | VRAI | Valeur VRAI |
Il est également possible d'utiliser des opérateurs PROGRESS tels que MATCHES, BEGINS, >, <, …
L'aide sur le champ « Filtre » donne la liste des champs de la table courante. Le bouton « Critères » permet d'afficher toutes les variables critères de type SCR et VCR utilisables dans le filtre de la condition.
Affecter des filtres et tris aux applications et l’automatiser au démarrage de l'application
Les filtres et tris sont créés au titre d’une entité (commandes, clients…). Les filtres et tri utilisables sur un écran DIAPASON dépendront donc de l’entité choisie sur la liste (LAP et AME).
Comment gérer les filtres et tris sur une application ?
Sur la liste standard des commandes actives par gestionnaire, l’application choisie est CDC. Je ne pourrais donc affecter que des filtres et tris liés à cette entité.
Dans l’onglet Actions:
Si “Sél. Cond ? “ n’est pas coché, il ne sera pas possible de sélectionner des filtres et tris sur l’application
Si “Sél. Cond ? “ est coché et qu’il n’y a pas de conditions de choisie dans “Liste Cond.” en dessous, tous les filtres et tris de l’entité sont présents dans l’application.
On peut définir les filtres et tris qu’on souhaite afficher en les sélectionnant dans “Liste Cond. “ et en cochant “Sél. Cond.
Le paramétrage est identique dans l’onglet Lignes pour les applications gérées en entête/lignes ( commandes, factures…).
Comment affecter un filtre et tri au démarrage ?
Dans l’onglet “Démarrage “de la LAP ou AME, il suffit de sélectionner le filtre et tri dans le champs “Cond. Défaut”:
Il ne faut pas choisir un filtre et tris avec saisie avec saisie de critères, ça ne fonctionnera pas et affichera une erreur !
Cette condition deviendra la nouvelle condition par défaut lors de la sélection Filtres et Tri !