Skip to main content
Skip table of contents

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”:

Quels mots-clés utiliser ?

Cette liste est issue du chapitre Syntaxe Filtre et Tris ci-après !

  • 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

MicrosoftTeams-image (149).png

CDCoEn.CdeDateRecep = DATE-JOUR

Tri sur l’entité courante

Je souhaite trier mes commandes par prix

MicrosoftTeams-image (150).png

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 !

MicrosoftTeams-image (153).png

MicrosoftTeams-image (152).png

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.

Listes des bases 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 ».

Quels mots-clés utiliser ?

Cette liste est issue du chapitre Syntaxe Filtre et Tris ci-aprè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.

liste des champs à trier de la table principale

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.

MicrosoftTeams-image (154).png

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.

MicrosoftTeams-image (155).png

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 + ''

D'autres exemples...
  • Sur la liste des Commandes Commerciales (CDCoEn), filtrer les commandes qui ont :

    • la variable spécifique VDE.CodeTarif (CDCoEnSp) non vide  OU la variable spécifique VDE.CliRegMod (CDCoEnSp) vide ;

    • ET (dans la table visualisée)

    • la variable standard SDE.CliComRef (CDCoEn) avec la valeur « AM ».

CHAQUE CDCoEnSp AVEC CDCoEnSp.RefSocApp = CDCoEn.RefSocApp ET CDCoEnSp.CdeNumCom = CDCoEn.CdeNumCom ET ( ( CDCoEnSp.DeRefChamp = 'CodeTarif' ET CDCoEnSp.ValalpChamp <> '' ) ou ( CDCoEnSp.DeRefChamp = 'CliRegMod' et CDCoEnSp.ValAlpChamp = '' ) ) et cdcoen.clicomref = 'am'

  • Sur la liste des Commandes Commerciales (CDCoEn), filtrer les commandes qui ont :

    • le statut « CdeTerSta » (Commande Terminée) à VRAI, sur les entêtes de commande de production (CDPrEn) ;

    • ET (dans une autre table, différente de celle visualisée)

    • la variable spécifique VDE.CodeTarif (CDCoEnSp) non vide ;

PREMIER cdpren avec cdpren.refsocapp = cdcoen.refsocapp et cdpren.cdenumcom = cdcoen.cdenumcom et cdpren.CdeTerSta = VRAI ,

PREMIER CdCoEnSp AVEC CDCoEnSp.RefSocApp = CDCoEn.RefSocApp ET CDCoEnSp.CdeNumCom = CDCoEn.CdeNumCom ET CDCoEnSp.DeRefChamp = "CodeTarif" ET CDCoEnSp.ValalpChamp <> " "

Sur la liste des Commandes Commerciales (CDCoEn), filtrer les commandes dont le client à pour « CptTieNum » (Compte Tiers) la valeur saisie dans le critère « SCR.Comm1 ».

CHAQUE CDClient AVEC CDClient.RefSocApp = CDCoEn.RefSocApp ET CDClient.CliResRef = CDCoEn.CliResRef ET CDClient.CliGenRef = CDCoEn.CliGenRef ET CDClient.CptTieNum = SCR.Comm1

Sur la liste des Lignes de Commandes Commerciales (CDCoLi), trier les lignes selon la référence de la variable spécifique VDL.Catégorie.

CHAQUE CDCoLiSp AVEC CDCoLiSp.RefSocApp = CDCoLi.RefSocApp ET CDCoLiSp.CdeNumCom = CDCoLi.CdeNumCom ET CDCoLiSp.CdeNumLig = CDCoLi.CdeNumLig ET CDCoLiSp.DeRefChamp = ‘Categorie’ BY CDCoLiSp.ValAlpChamp

Sur la liste des Séries, filtrer les séries qui ont un statut spécifique « urgent » vrai :

CHAQUE LASerEnS AVEC LASerEnS.RefSocApp = LaSerEnt.RefSocApp ET LaSerEnS.LanModTyp = LaSerEnt.LanModTyp ET LASerEnS.LanSerRef = LASerEnt.LanSerRef ET LASerEnS.DeRefChamp = "ExpDosFab" ET LASerEnS.ValLogChamp = YES

Sur la liste des Factures, filtrer les factures par nom de client et date d’expédition (stocké sur la commande associée : SDE.CliGenMDi et VDE.CdeDateExp). Le caractère « , » permet de faire un « ET » sur 2 tables (CDCoEn et CDCoEnSp dans l’exemple).

CHAQUE CDCoEn AVEC CDCoEn.RefSocApp = 'SD' ET CDCoEn.cdeNumCom = CDFaEn.CdeNumCom ET CDCoEn.CliResRef = '0' ET CDCoEn.CliGenMDi COMMENCEPAR VCR.CliGenNom , CHAQUE CDCoEnSp AVEC CDCoEnSp.RefSocApp = 'SD' ET CDCoEnSp.cdeNumCom = CDFaEn.CdeNumCom ET CDCoEnSp.DeRefCHamp = 'CdeDateExp' ET CDCoEnSp.ValDatChamp = VCR.CdeDateExp

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.


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.