MUIbase Support This Project
programmable relational database
with graphical user interface
This page is also available in Deutsch English

Documentation

La documentation ci-dessous fait partie de la distribution de MUIbase. Elle est également disponible sous forme de PDF.


[ << ] [ >> ]           [Sommaire] [Table des matières] [Index] [ ? ]

10. Filtre

Des filtres peuvent être utilisés pour masquer des enregistrements. Ce chapitre décrit les différents types de filtre disponibles et la façon de les utiliser.

MUIbase connaît deux types de filtres : les filtres d'enregistrement et les filtres de référence.


10.1 Filtre d'enregistrement

Un filtre d'enregistrement peut être positionné sur une table pour filtrer les enregistrements qui ne vous intéressent pas. Les enregistrements filtrés sont exclus de l'affichage de la table et par conséquent l'utilisateur ne peut ni les voir, ni les parcourir.


10.1.1 Expression de filtrage

Un filtre est défini en donnant une expression booléenne qui peut contenir des appels à des fonctions de programmation MUIbase. Pour chaque enregistrement de la table sur laquelle est spécifié le filtre, cette expression est évaluée. Si elle retourne NIL alors l'enregistrement est filtré, sinon l'enregistrement est accepté.

Chaque table peut avoir sa propre expression de filtrage.


10.1.2 Modifier les filtres

Pour modifier le filtre de la table courante, sélectionnez le menu `Table - Changer le filtre'. Cela ouvrira une fenêtre contenant :

  • dans le titre de la fenêtre, le nom de la table sur laquelle vous installez le filtre.
  • une liste de tous les champs de la table pouvant être utilisés dans l'expression de filtrage. Cette liste est placée sur la gauche de la fenêtre. Si vous double-cliquez sur un nom alors celui-ci sera inséré dans l'expression de filtrage à la position courante du curseur.
  • une banque de boutons reprenant les fonctions de programmation et les opérateurs de MUIbase est placée sur la droite de la fenêtre. Cliquez sur l'un des boutons pour entrer la fonction correspondante dans l'expression de filtrage. Veuillez noter que la liste présentée des fonctions et opérateurs n'est pas exhaustive ; les autres fonctions de MUIbase qui ne sont pas présentes dans l'un des boutons doivent être saisies manuellement. Seules les fonctions MUIbase qui n'ont pas d'effet de bord peuvent être utilisées, p. ex. il n'est pas possible d'écrire des données dans un fichier au sein d'une expression de filtrage.
  • un champ de saisie de chaînes de caractères pour entrer l'expression de filtrage. Les noms des champs, des fonctions et des opérateurs sont insérés ici. Vous pouvez également directement saisir votre expression de filtrage.
  • deux boutons `Ok' et `Annuler' pour refermer la fenêtre.

Après avoir spécifié l'expression de filtrage, cliquez sur le bouton `Ok' pour quitter la fenêtre. L'expression saisie est alors compilée. En cas de compilation réussi, l'expression est appliquée à tous les enregistrements. Ceux pour qui l'expression booléenne n'est pas vérifiée sont retirés de l'affichage de la table.

Si l'expression ne compile pas, vous obtiendrez un message d'erreur dans la barre de titre de la fenêtre.

Un filtre peut être activé ou désactivé en cliquant sur le bouton `F' dans l'onglet de la table (s'il celui-ci est activé). Après la spécification d'une expression de filtrage sur une table, le filtrage de cette table est automatiquement activé.

Si vous (ré)activez un filtre alors tous les enregistrements de la table sont analysés pour vérifier s'ils répondent ou non au filtre.

Lorsqu'un filtre est activé et que vous changez la valeur d'un champ (employé dans le filtre) dans un enregistrement de cette table, la correspondance avec le filtre de cet enregistrement n'est pas réévaluée et reste inchangée.

Si vous allouez un nouvel enregistrement dans une table ayant un filtre actif, aucune vérification n'est faite sur le nouvel enregistrement quant à sa correspondance avec le filtre, il a son état de vérification automatiquement positionné à TRUE.


10.1.3 Exemples de filtre

Voici quelques exemples d'expression de filtrage valides :

  • `NIL' filtre tous les enregistrements.
  • `TRUE' ne filtre aucun enregistrement (conserve tout).
  • `0' a le même effet que `TRUE' car pour MUIbase toute expression différente de NIL est considérée TRUE.
  • `(> Montant 100.0)' n'affiche que les enregistrements dont le champ `Montant' est supérieur à 100.0 (on suppose ici que la table dispose d'un champ `Montant' de type décimal).
  • `(NOT (LIKE Nom "*x*"))' filtre tous les enregistrements ayant la lettre `x' dans le champ `Nom' (de type chaîne).

Notez que le langage de programmation de MUIbase utilise une syntaxe similaire à celle de Lisp. Pour plus d'informations concernant le langage de programmation, voir Progammer MUIbase.


10.2 Filtre de référence

Les champs de type référence peuvent également avoir un comportement de filtre. Cela est utile par exemple pour construire une hiérarchie de tables. Comme exemple voyez le projet `Albums'.

Si le filtre d'un champ Référence est activé alors les fonctionnalités suivantes le sont aussi :

  1. L'utilisateur ne peut accéder qu'aux enregistrements de la table pour lesquels la référence pointe sur l'enregistrement courant de la table référencée.

  2. Si la table référencée change d'enregistrement courant, un nouvel enregistrement courant est également recherché et activé dans la table du champ Référence.

  3. Lors de l'allocation d'un nouvel enregistrement, la référence est automatiquement positionnée à l'enregistrement courant de la table référencée.

Note: La suppression en cascade doit être implémentée manuellement (en utilisant un déclencheur de suppression).

N'utilisez pas les filtres de référence sur des graphes cycliques, p. ex. une table s'auto-référençant, car cela n'a pas beaucoup de sens.


[ << ] [ >> ]           [Sommaire] [Table des matières] [Index] [ ? ]

Ce document a été généré le 10 Octobre 2017 par texi2html