D:\582821918.doc
Limitation des tuples affichés par une fenêtre « LOV »
Notre action consiste à rendre dynamique l’affichage des tuples d’une fenêtre « LOV » et par
la même occasion, restreindre si nécessaire, le choix en fonction de l’utilisateur connecté.
Situation :
Des personnes sont affectées à zéro ou une école et possèdent une et une seule fonction. Par
rapport à la personne connectée, les valeurs proposées par la fenêtre « LOV » concernant les
écoles à disposition, devront être différentes. L’objectif visé par les règles de gestion est le
suivant : Si la personne connectée est le responsable administratif de la base de données, tous
les tuples devront être affichés dans la fenêtre. Par contre, si la connexion est faite par la
secrétaire d’une école, seul le tuple représentant son école devra être disponible.
Pour ce faire, il existe parmi les paramètres de définition d’un composant de module « Table
usage » la possibilité de définir une clause Where.
D:\582821918.doc
Deux possibilités sont alors offertes par « Type of condition » : Query et Validation.
La première influe sur la table « PERSONNE » et n’affichera que les personnes qui possèdent
les critères définis dans la condition Where-Query.
Exemple :
WHERE ecoles.mnemo =’ESNIG ‘ ne modifie pas le contenu de la fenêtre « LOV »
alors que dans la « record list », sont affichées uniquement les personnes qui sont
affectées à l’ESNIG.
La deuxième option influe sur la table « ECOLES » et ne met à disposition dans la fenêtre
« LOV » que le tuple demandé.
Exemple :
WHERE ecoles.mnemo =’ESNIG ‘ seul le mnémo ‘ESNIG’ est à disposition dans la
fenêtre « LOV » pour l’insertion ou la modification, alors que dans la « record list »
toutes les personnes, indépendamment de leur école, sont affichées.
Nous définissons ci-dessous une clause Where-Validation qui prend en compte la règle de
gestion définie.
mnemo IN((SELECT ecoles.mnemo FROM personnes, ecoles, fonctions
WHERE USER=UPPER(personnes.mnemo)
AND personnes.eco_numero = ecoles.numero
AND 'ADMIN_LOCAL' IN (SELECT granted_role FROM SYS.DBA_ROLE_PRIVS
WHERE GRANTEE =USER))
UNION
(SELECT ecoles.mnemo FROM ecoles
WHERE 'ADMIN_GENERAL' IN (SELECT granted_role FROM
SYS.DBA_ROLE_PRIVS
WHERE GRANTEE =USER))
)
Vérifie les droits de la personne
dans la base de données. (Voir
feuillet « gestion des autorisations
de manipulation de données dans un
module »)
D:\582821918.doc
Le résultat obtenu est le suivant :
Connexion de la personne responsable de la
base de données
Connexion de la secrétaire de Sierre
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !