Documentation
La documentation ci-dessous fait partie de la distribution de BeeBase. 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.
BeeBase connaît deux types de filtres : les filtres d'enregistrement et les filtres de référence.
10.1 Filtre d'enregistrement | Utiliser une expression booléenne comme filtre | |
10.2 Filtre de référence | Utiliser un enregistrement référence comme filtre |
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 fiche de table et par conséquent l'utilisateur ne peut ni les voir, ni les parcourir.
10.1.1 Expression de filtrage | À quoi ressemble un filtre | |
10.1.2 Modifier les filtres | Comment spécifier des expressions de filtrage | |
10.1.3 Exemples de filtres | Quelques exemples |
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 BeeBase. 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 inclus dans la fiche de table.
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 appliquez 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 BeeBase 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 BeeBase qui ne sont pas présentes dans l'un des boutons doivent être
saisies manuellement.
Seules les fonctions BeeBase 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éussie, 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 (si 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.
- `0' a le même effet que `TRUE' car pour BeeBase
toute expression différente de NIL est équivalente à 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 BeeBase utilise une syntaxe similaire à celle de Lisp. Pour plus d'informations concernant le langage de programmation, voir Programmation de BeeBase.
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 :
- 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.
- 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.
- 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 30 Septembre 2024 par texi2html