Skip to main content
Skip table of contents

STUDIO Filtres et Tris


Cette fonctionnalité a été actualisée en 04.16.22, voir ci-dessous.

Anciennes Versions

Documentation

04.16.00

T0-STUDIO FiltresTris-031023-063208.pdf

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

MicrosoftTeams-image (147).png

Puis, remplir l’onglet Définition comme ci-dessous:

  • N° Ordre: Permet d'ordonner les filtres et tris du menu « Sélections »

  • Référence: Identifiant unique de la condition

  • Désignation: Désignation de la condition

  • Libellé pop-up: Libellé affiché dans le menu « Sélections Filtres et Tris»,

  • Application: Permet de restreindre la condition a un mode particulier de la liste; cette case à cocher n'est active que si la liste appartient à une application qui gère des modes différents comme les GFDs.

  • Comport. Défaut: Permet de mémoriser la condition entre deux sessions DIAPASON.

C'est à dire ?

Si la case « Comport. Défaut » de l'onglet « Définition » a été cochée lors de la création de la condition, celle-ci est mémorisée et sera automatiquement utilisée à la prochaine ouverture de la liste.

Et remplir ensuite soit l’onglet « Filtre et tri », soit l’onglet “Filtre Multi-Tables”:

MicrosoftTeams-image (148).png

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

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.

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é.

MicrosoftTeams-image (157).png

Dans l’onglet Actions:

MicrosoftTeams-image (158).png
  • 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”:

MicrosoftTeams-image (159).png

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 !


JavaScript errors detected

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

If this problem persists, please contact our support.