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

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

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

Messagepar camilleB » 03 Avr 2012 à 17:49

Salut,
petite question pour confirmer mes doutes! le hide /when ne fonctionne pas correctement quand il y a plusieurs conditions avec @isnotmember??
:?:
cdt
camille
Dernière édition par camilleB le 15 Juin 2012 à 15:08, édité 1 fois.
camilleB
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 176
Inscrit(e) le : 18 Jan 2012 à 23:45

Re: Hide when et condition multiples @isnotmember

Messagepar roubech » 03 Avr 2012 à 20:54

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
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Hide when et condition multiples @isnotmember

Messagepar camilleB » 04 Avr 2012 à 13:34

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
camilleB
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 176
Inscrit(e) le : 18 Jan 2012 à 23:45

Re: Hide when et condition multiples @isnotmember

Messagepar roubech » 04 Avr 2012 à 23:02

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
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Hide when et condition multiples @isnotmember

Messagepar camilleB » 10 Avr 2012 à 11:48

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
camilleB
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 176
Inscrit(e) le : 18 Jan 2012 à 23:45


Retour vers Développement