Welcome to the LimeSurvey Community Forum

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

Blocage si le résultat d'une equation n'est pas bon

  • mjacques
  • mjacques's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
7 years 3 weeks ago #149122 by mjacques
Bonjour,
ça devrait paraître facile pour certains, mais je patauge depuis hier. Grrr...
2 dates sont entrées dans 2 questions, puis dans une autre question un simple affichage texte fait apparaître le nombre de semaines entières entre les 2 dates, à savoir: {((date("W",strtotime(DISPONIBILITEFIN.NAOK)))-(date("W",strtotime(DISPONIBILITE.NAOK)))+1)}
A partir du résultat il faudrait faire apparaître en-dessous:
- soit un texte bloquant le questionnaire si le résultat est en-dessous de 5
- soit un texte qui valide le résultat qui se trouve égal ou au-dessus de 5 et l'internaute peut valider le questionnaire
Bonne journée
The topic has been locked.
  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 3 weeks ago #149130 by Nickko
Il faudrait voir avec les évaluations ou les quotas mais comme ton chiffre est le fruit d'un calcul, je ne sais pas si ça va fonctionner.

Tu pourrais essayer de simplement mettre ton équation dans le champ de l'évaluation.

Nickko
Head of ergonomics, UX & UI.
The topic has been locked.
  • mjacques
  • mjacques's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
7 years 3 weeks ago #149134 by mjacques
Hmmm...je ne suis pas certain que quotas soit la possibilité recherchée (?). S'il y a mauvais choix dans les dates il faut que l'internaute puisse changer ces dates pour valider ce questionnaire.

Pour la question je pensais choisir l'option équation, remettre le code
{((date("W",strtotime(DISPONIBILITEFIN.NAOK)))-(date("W",strtotime(DISPONIBILITE.NAOK)))+1)}
dedans, et rajouter un code du genre this>4... puis faire apparaître les messages dans l'aide...Mais rien ne fonctionne.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 3 weeks ago #149141 by DenisChenu
Salut,

date retourne un texte, c'est peut être du à ça.

Si tu essaye {((intval(date("W",strtotime(DISPONIBILITEFIN.NAOK))))-intval((date("W",strtotime(DISPONIBILITE.NAOK))))+1)} cela donne quoi ?

Denis

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.
  • mjacques
  • mjacques's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
7 years 3 weeks ago #149151 by mjacques
Le bon nombre de semaines est toujours bien affiché, mais ensuite je fais quoi?
Je patauge.

Dans mes tests, si j'ajoute ce code, il m'indique false ou true, mais je ne suis pas sûr d'être sur la bonne voie?
{(((is_numeric(NBREDESEMAINES.NAOK) || is_empty(NBREDESEMAINES.NAOK))) and ((sum(NBREDESEMAINES.NAOK) >= (5) || count(NBREDESEMAINES.NAOK) == 0)))}

(NBREDESEMAINES est le résultat du code que tu as donné)
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 3 weeks ago - 7 years 3 weeks ago #149152 by DenisChenu
A oui, OK tu veux une validation.

Dans un premier temps :
- Construire l'équation
Pour moi :
Code:
{(intval(date("W",strtotime(DISPONIBILITEFIN.NAOK)))-intval((date("W",strtotime(DISPONIBILITE.NAOK))))+1)>= 5
 ||
 ( is_empty(DISPONIBILITEFIN.NAOK) || is_empty(DISPONIBILITEFIN.NAOK) )}
Devrait passer.

Cependant : comme les équations ne mettent pas à jour les validation en direct : ne pas se servir des équations.

Rentrer cette formule dans manual.limesurvey.org/Question_type_-_Da...8em_validation_sq.29

Et le texte d'alerte dans manual.limesurvey.org/Question_type_-_Da...validation_sq_tip.29 MAIS avec la condition :
Pour moi :
Code:
{if((intval(date("W",strtotime(DISPONIBILITEFIN.NAOK)))-intval((date("W",strtotime(DISPONIBILITE.NAOK))))+1)>= 5
 ||
 ( is_empty(DISPONIBILITEFIN.NAOK) || is_empty(DISPONIBILITEFIN.NAOK) ),'','Il faut au moins 5 mois entre les deux dates')}

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.
Last edit: 7 years 3 weeks ago by DenisChenu. Reason: On ferme le if
The topic has been locked.
More
7 years 3 weeks ago #149155 by Ben_V

mjacques wrote: ...puis dans une autre question un simple affichage texte fait apparaître le nombre de semaines entières entre les 2 dates, à savoir: {((date("W",strtotime(DISPONIBILITEFIN.NAOK)))-(date("W",strtotime(DISPONIBILITE.NAOK)))+1)}


ta question NBREDESEMAINES c'est bien une question type équation et non affichage texte?

Peut-être faut-il passer une page entre après cette question pour appliquer la logique de ton questionnaire... Je ne vois pas trop ce qui empêcherait de faire référence à cette question par la suite dans les champs de relevance (tant au niveau des groupes que des questions) pour afficher des messages etc.

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
The topic has been locked.
  • mjacques
  • mjacques's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
7 years 3 weeks ago #149159 by mjacques
Encore merci Denis, je progresse :-)
Par contre je n'ai pas trouvé l'option qui bloque la page pour le résultat en-dessous de 5. Par contre ton message s'affiche bien :-)
C'est possible techniquement au moins de bloquer?

En type de question j'ai choisi "choix multiples", je trouve que c'est un peu plus propre qu'un champ à remplir.
The topic has been locked.
  • mjacques
  • mjacques's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
7 years 3 weeks ago #149160 by mjacques
Oui Benoît, c'était bien dans le type équation (aussi): voir la réponse de Denis.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 3 weeks ago #149179 by DenisChenu

Ben_V wrote: Peut-être faut-il passer une page entre après cette question pour appliquer la logique de ton questionnaire... Je ne vois pas trop ce qui empêcherait de faire référence à cette question par la suite dans les champs de relevance (tant au niveau des groupes que des questions) pour afficher des messages etc.

Pour essayer d'être plus clair sur le principe des équations.

Prenont un exemple
Q1 et Q2 sont 2 questions , avec réponse par le répondant, type numérique par exemple.
E1 et E2a et E2b sont 3 questions equations avec les équations suivantes:
- E1 : sum(Q1.NAOK,Q2.NAOK)
- E2a : if(E1>0,"OK","KO")
- E2b : if(sum(Q1.NAOK,Q2.NAOK)>0,"OK","KO")

On pouyrrait penser que E2a et E2b devrait avoir le même résultat.

Sur la mêmepage , à l'arrivée:
- Q1 et Q2 sont vides
=> E2a et E2b sont toutes les 2 KO
- Le répondant indique 1 dans Q1
=> E2a reste KO, E2b est OK
- Le répondant passe à la page suivante
=> E2a et E2b sont OK

La mise à jour d'une question équation ne met pas à jour les équations (relevance/question equation/affichage) dépendante.

C'est contournable.

J'attends twig sur la version 3.0/develop pour corriger le bug pour le futur.

Denis

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 following user(s) said Thank You: Ben_V
The topic has been locked.
More
7 years 3 weeks ago #149210 by Ben_V
Salut Denis,

J'ai créé un exemplaire suivant tes indications (lss attaché) et chez moi E2A et E2B fonctionnent toujours exactement de la même manière...

Benoît

EM Variables => bit.ly/1TKQyNu | EM Roadmap => bit.ly/1UTrOB4
Last Releases => 2.6x.x goo.gl/ztWfIV | 2.06/2.6.x => bit.ly/1Qv44A1
Demo Surveys => goo.gl/HuR6Xe (already included in /docs/demosurveys)
The following user(s) said Thank You: DenisChenu
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 years 3 weeks ago #149235 by DenisChenu
Bin quoi, voila, j'ai droit à l'erreur ;)

Dingu, je viens de tester aussi, j'étais persuadé que cela ne fonctionnait pas. Tu as testé sur une 2.6 ? 2.6_sp our une 2.6X ?

J'ai fait le test que sur une 2.6X, et je confirme : ca marche très bien.

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