Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Equation de validation dans les cases a coché multiples

  • Philippe
  • Philippe's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
4 years 19 hours ago #195958 by Philippe
Bonsoir,

J'ai une question type "choix multiple" avec bien entendu plusieurs sous questions possibles.
Cependant il y a des réponses qui ne sont pas cohérentes si elle sont coché ensemble.

J'aimerais pouvoir signaler à l'utilisateur qu'il fait une "c..."...
J'ai fais ça par exemple :

if((Q400101_SQ002.value="Y") AND (Q400101_SQ003.value="Y"),"y a une incohérence")
Que j'ai mis dans le truc "Logique" "equation de validation"...
Mais bien entendu ça fonctionne pas ...

J'ai toujours eu un peu de mal avec ces équations ...

Une idée ?
Merci d'avance
Philippe
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 1 hour ago #195972 by Joffm

if((Q400101_SQ002.value="Y") AND (Q400101_SQ003.value="Y"),"y a une incohérence")


1. "value" n'est pas nécessaire. Telle est la valeur des "évaluations"
2. Les comparaisons sont faites avec "==".
3. La fonction "if" a trois paramètres. if(test, résultat si vrai, résultat si faux)







Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: DenisChenu, Philippe
The topic has been locked.
  • Philippe
  • Philippe's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
3 years 11 months ago #195976 by Philippe
Rhoooo ! Merci Merci !
Décidément moi et la logique ...
...
Malheureusement je pense que j'ai pas fini de venir miauler sur ce Forum
Merci encore et bonne après midi
Philippe
The topic has been locked.
  • Philippe
  • Philippe's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
3 years 11 months ago #195982 by Philippe
Re Bonsoir,

Alors, évidement ça fonctionne avec juste ça mais bien entendu Murphy n'est jamais très loin...
Lorsque j'ai voulu complexifier le bouzin je me suis heurté à deux problèmes :

pour rappel c'est une question qui comporte plusieurs case à cocher dont certaines ne doivent pas logiquement être cochées en même temps ...
Il y a la sous question SQ001 et la SQ010 qui excluent toutes les autres ... Donc je les ait mise en Exclusion ... ça fonctionne bien si je rajoute aucun code dans le champs "équationde validation" ... Sinon, j'ai la petite étoile rouge et je peux pas passer a la page suivante... (Problème N°1)
Deuxièmement si j'enlève cette option, mais que je faire plus de test par exemple la sous question 2 et 3 ou la sous question 3 et 4 ou la sous question 2 et 3 ...
ça me donne bien le message d'erreur mais celui-ci n'est pas en "rouge" et surtout me laisse passer vers la page suivante...

Voici le code que j'ai utilisé :
Dans la Box Equation de validation de la Question
(Q400101_SQ001!="Y") OR (Q400101_SQ002!="Y") OR (Q400101_SQ003!="Y") OR (Q400101_SQ004!="Y") OR (Q400101_SQ005!="Y") OR (Q400101_SQ006!="Y") OR (Q400101_SQ007!="Y") OR (Q400101_SQ008!="Y") OR (Q400101_SQ009!="Y") OR (Q400101_SQ010!="Y")

Dans la box Indication de validation de la question :
{if((Q400101_SQ002=="Y") AND (Q400101_SQ003=="Y"),"il y a une incohérence") OR if((Q400101_SQ002=="Y") AND (Q400101_SQ004=="Y"),"il y a une incohérence") OR if((Q400101_SQ003=="Y") AND (Q400101_SQ004=="Y"),"il y a une incohérence") OR if((Q400101_SQ007=="Y") AND (Q400101_SQ008=="Y"),"il y a une incohérence")}

Une idée ?
Amicalement
Philippe
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 11 months ago #196003 by DenisChenu
> Dans la Box Equation de validation de la Question

Ici tu demande juste que l'une des case ne soit pas coché ... a mon avis : c'est pas ce que tu souhaite.

> Dans la box Indication de validation de la question :

Ne t'occupe pas de cette partie là avant, fait le au final.

Quand la logique est difficile, ce que je fait

1. Je sépare et j'(écit mes condition comme cela dans le TEXTE de la question {if(test1,"OK",KO")} puis {if(test2,"OK",KO")} etc ...
2. Je test donc bien séparément chaque test
3. Je place dans "Equation de validation de la Question" ( (test1) AND (test2) )

Il peut ensuite l'arriver d'ajouter les condition qui permete de passer, par exempl
( (test1) AND (test2) ) OR count(self.NAOK) == 0

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose