Remplir le Filtre et Tri simple
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.