Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
En pratique : MUIbase - Les filtres
(Article écrit par Steffen Gutmann et extrait de muibase.sourceforge.net - mars 2006)
|
|
Des filtres peuvent être utilisés dans MUIbase pour masquer des enregistrements.
Cet article 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
(utilise une expression booléenne comme filtre) et et les filtres de référence
(utilise un enregistrement référence comme filtre).
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.
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.
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.
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 l'article
Programmer MUIbase.
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 de MUIbase.
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, par exemple une table s'auto-référençant,
car cela n'a pas beaucoup de sens.
|