Page 1 sur 1

[Résolu] Hide when et condition multiples @isnotmember

MessagePublié: 03 Avr 2012 à 17:49
par camilleB
Salut,
petite question pour confirmer mes doutes! le hide /when ne fonctionne pas correctement quand il y a plusieurs conditions avec @isnotmember??
:?:
cdt
camille

Re: Hide when et condition multiples @isnotmember

MessagePublié: 03 Avr 2012 à 20:54
par roubech
je ne comprend pas bien
la formule doit retourner une seule valeur, vrai ou faux
montre ta formule, et dis ce que tu veux, ca sera plus simple

Re: Hide when et condition multiples @isnotmember

MessagePublié: 04 Avr 2012 à 13:34
par camilleB
roubech a écrit:je ne comprend pas bien
la formule doit retourner une seule valeur, vrai ou faux
montre ta formule, et dis ce que tu veux, ca sera plus simple

Bonjour,
Les formules de masquage m'embrouillent parfois et surtout quand les conditions deviennent complexes!
Par exemple:
je veux afficher un bouton pour plusieurs roles donc j'ai mis: @isnotmember("[roleA]":"[roleB]":"[roleC]";@userroles) au lieu de
@isnotmember("[roleA]";@userroles) | @isnotmember("[roleB]";@userroles) | @isnotmember("[roleC]";@userroles). ok le bouton s'affiche pour ces roles.
En plus le bouton doit s'afficher ou être masqué en fonction d'autres champs:
@isnotmember("[roleA]":"[roleB]":"[roleC]";@userroles) | champA!="" | champB="" et dans ce cas plus rien ne s'affiche!
L'évaluation de la formule se fait pour chaque condition ou pour l'ensemble des conditions?
J'ai encore le réflexe inverse de la logique lotus (vrai pour afficher et faux pour masquer..). Je n'ai pas trouvé la bonne méthode pour ne pas me tromper!

cdt
camille

Re: Hide when et condition multiples @isnotmember

MessagePublié: 04 Avr 2012 à 23:02
par roubech
pour les XPages, ils sont revenus à quelquechose de plus naturel : visible si
en attendant, soit tu fais un !( visible si )
soit tu maitrises les | les & les ! et les combinaisons de tout ça
quelques pistes :
visible si A ou B <=> masquer si !A & !B
visible si A et B <=> masquer si !A ou !B

pour ta question "L'évaluation de la formule se fait pour chaque condition ou pour l'ensemble des conditions ?" la formule est évaluer en entier
surtout si c'est un &
dans le cas où c'est un | , si la première condition est vraie, je ne sais pas si l’interpréteur évalue la seconde ou pas, car dans l'absolu, il peut faire l'économie de ce test car quelque soit le résultat, le | sera vrai
Si tu veux que ton bouton s'affiche pour les users qui ont le role A ou le role B ou le role C, mais uniquement si le champ A est vide et le champ B non vide
Ca se traduit en visible si
( @IsMember([roleA]; @UserRoles) | @IsMember([roleB]; @UserRoles) | @IsMember([roleC]; @UserRoles) ) & champA = "" & champB != ""
et donc en masquer si
! ( ( @IsMember([roleA]; @UserRoles) | @IsMember([roleB]; @UserRoles) | @IsMember([roleC]; @UserRoles) ) & champA = "" & champB != "" )
équivaut à
! ( @IsMember([roleA]; @UserRoles) | @IsMember([roleB]; @UserRoles) | @IsMember([roleC]; @UserRoles) ) | champA != "" | champB = ""
équivaut à
( !@IsMember([roleA]; @UserRoles) & !@IsMember([roleB]; @UserRoles) & !@IsMember([roleC]; @UserRoles) ) | champA != "" | champB = ""

après, il me semble qu'il y a une subtilité entre le @IsNotMember et !@IsMember
si tu le 1er argument une chaine ca doit être équivalent. mais si c'est une liste, ca ne l'est plus
voir l'aide pour plus d'infos ...
http://www-12.lotus.com/ldd/doc/domino_ ... enDocument
http://www-12.lotus.com/ldd/doc/domino_ ... enDocument

Re: Hide when et condition multiples @isnotmember

MessagePublié: 10 Avr 2012 à 11:48
par camilleB
Salut, Merci Roubech!
J'ai trouvé un post dans ce forum qui dit d'écrire ce que l'on veut voir afficher et d'inverser l'ensemble par !
Je crois bien qu'il y a une petite subtilité pour le @isnotmember! Si on veut évaluer pour plusieurs rôles il vaut mieux écrire @isnotmember("[A]":"[B"])
Alors j'ai ré-écrit ma formule et pour l'instant cela donne un résultat correcte. Je vais continuer ma lancée.
Je bosse encore en v6!
cdt
camille