- Posts: 230
- Thank you received: 21
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Problème de calcul avec la fonction countifop
- riqcles
- Topic Author
- Offline
- Elite Member
Less
More
3 years 2 weeks ago #214668
by riqcles
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
Problème de calcul avec la fonction countifop was created by riqcles
Bonjour à tous,
un de mes utilisateurs de LimeSurvey m'a indiqué qu'il avait des problèmes avec cette fonction lors d'un calcul.
J'ai regardé son code qui est bien réalisé et je ne trouve pas le blocage.
J'ai attaché le questionnaire pour votre analyse.
Les tests qui ont été fait :
saisie d'une valeur négative : message d'alerte apparait --> OK
saisie des bonnes valeurs pour le calcul : pas de message d'alerte --> OK
Validation du questionnaire : pop up de valeur non correcte.
Bien sur, si on enlève le contrôle, cela fonctionne, mais ce n'est pas le but.
J'ai activé le questionnaire --> pareil (on ne sait jamais)
J'ai essayé sur la V4 de démo du site de LimeSurvey : pareil (ce qui exclu ma version de LimeSurvey, qui est une V3.22)
Donc, je donne ma langue au citron...
Si vous avez des pistes, je prends.
Si c'est une anomalie, je poste le bug.
J'espère que si une correction est possible, que je puisse appliquer le code corrigé pour la version V3.X
Une migration en V4 n'est pas encore à l'ordre du jour.
un de mes utilisateurs de LimeSurvey m'a indiqué qu'il avait des problèmes avec cette fonction lors d'un calcul.
J'ai regardé son code qui est bien réalisé et je ne trouve pas le blocage.
J'ai attaché le questionnaire pour votre analyse.
Les tests qui ont été fait :
saisie d'une valeur négative : message d'alerte apparait --> OK
saisie des bonnes valeurs pour le calcul : pas de message d'alerte --> OK
Validation du questionnaire : pop up de valeur non correcte.
Bien sur, si on enlève le contrôle, cela fonctionne, mais ce n'est pas le but.
J'ai activé le questionnaire --> pareil (on ne sait jamais)
J'ai essayé sur la V4 de démo du site de LimeSurvey : pareil (ce qui exclu ma version de LimeSurvey, qui est une V3.22)
Donc, je donne ma langue au citron...
Si vous avez des pistes, je prends.
Si c'est une anomalie, je poste le bug.
J'espère que si une correction est possible, que je puisse appliquer le code corrigé pour la version V3.X
Une migration en V4 n'est pas encore à l'ordre du jour.
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
Attachments:
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12940
- Thank you received: 3979
3 years 2 weeks ago #214669
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Problème de calcul avec la fonction countifop
C'était ça?
{countifop('lt', 0, that.LISTES.sq_VOIX.NAOK)}
Les nombres négatifs sont interdits; donc le résultat est toujours "0"
{countifop('lt', 0, that.LISTES.sq_VOIX.NAOK)}
Les nombres négatifs sont interdits; donc le résultat est toujours "0"
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12940
- Thank you received: 3979
3 years 2 weeks ago #214672
by Joffm
Mais je ne vois aucun défaut
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Problème de calcul avec la fonction countifop
J'ai compris.C'était ça?
{countifop('lt', 0, that.LISTES.sq_VOIX.NAOK)}
Mais je ne vois aucun défaut
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: riqcles
The topic has been locked.
- riqcles
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 230
- Thank you received: 21
3 years 2 weeks ago #214678
by riqcles
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
Replied by riqcles on topic Problème de calcul avec la fonction countifop
Oui, on c'est bien cette fonction. Mais c'est lors de l'appui sur le bouton envoyer que cela ne passe pas.
Je pense que le javascript de validation doit poser problème (source de la question LISTES).
Je vais regarder ce point.
Je pense que le javascript de validation doit poser problème (source de la question LISTES).
Je vais regarder ce point.
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
The topic has been locked.
- riqcles
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 230
- Thank you received: 21
3 years 2 weeks ago #214679
by riqcles
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
Replied by riqcles on topic Problème de calcul avec la fonction countifop
Oups ! je voulais dire la validation de la question :
Équation de validation de question: {(!is_empty(self.sq_SQ01_NOM)) and (!is_empty(self.sq_SQ01_AFFILIATION)) and (!is_empty(self.sq_SQ01_VOIX)) and (!is_empty(self.sq_SQ01_SIEGES)) AND (countifop('lt', 0, self.sq_SIEGES.NAOK) == 0) and (countifop('lt', 0, self.sq_VOIX.NAOK) == 0) }
Équation de validation de question: {(!is_empty(self.sq_SQ01_NOM)) and (!is_empty(self.sq_SQ01_AFFILIATION)) and (!is_empty(self.sq_SQ01_VOIX)) and (!is_empty(self.sq_SQ01_SIEGES)) AND (countifop('lt', 0, self.sq_SIEGES.NAOK) == 0) and (countifop('lt', 0, self.sq_VOIX.NAOK) == 0) }
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
The topic has been locked.
- riqcles
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 230
- Thank you received: 21
3 years 2 weeks ago #214681
by riqcles
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
Replied by riqcles on topic Problème de calcul avec la fonction countifop
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
3 years 2 weeks ago #214712
by DenisChenu
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.
Replied by DenisChenu on topic Problème de calcul avec la fonction countifop
J'ai même essayé avec des tests sur l'inverse …
Le problème est sans aucun doute lié aux différences de comparaison entre NULL, false, "" et 0 .
A par faire les tests ligne à ligne …
je vois pas trop …
Tu peux remonter le bogue mais je ne suis même pas sur de comment le gérer.
fermé pour "non corrigeable"
bugs.limesurvey.org/view.php?id=15501
fermé avec "ajout d'alerte"
bugs.limesurvey.org/view.php?id=15405
Ouvert en shaipa
bugs.limesurvey.org/view.php?id=14817
Le problème est sans aucun doute lié aux différences de comparaison entre NULL, false, "" et 0 .
A par faire les tests ligne à ligne …
je vois pas trop …
Tu peux remonter le bogue mais je ne suis même pas sur de comment le gérer.
fermé pour "non corrigeable"
bugs.limesurvey.org/view.php?id=15501
fermé avec "ajout d'alerte"
bugs.limesurvey.org/view.php?id=15405
Ouvert en shaipa
bugs.limesurvey.org/view.php?id=14817
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.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
3 years 2 weeks ago #214731
by DenisChenu
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.
Replied by DenisChenu on topic Problème de calcul avec la fonction countifop
Je viens de tester
Même :
'''countifop('lt', 0, that.LISTES.sq_VOIX.NAOK) : {countifop('lt', 0, that.LISTES.sq_VOIX.NAOK)} donne 2 valeurs différentes.
Les valeurs masquée (NULL) remone vrai en PHP.
Je penche pour un problème PHP ici plutôt que JS
Même :
'''countifop('lt', 0, that.LISTES.sq_VOIX.NAOK) : {countifop('lt', 0, that.LISTES.sq_VOIX.NAOK)} donne 2 valeurs différentes.
Les valeurs masquée (NULL) remone vrai en PHP.
Je penche pour un problème PHP ici plutôt que JS
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.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
3 years 2 weeks ago #214733
by DenisChenu
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.
Replied by DenisChenu on topic Problème de calcul avec la fonction countifop
Oui …
Javascript '' < 0 remonte toujours FALSE, mais comme toute comparaison entre un nbre et une valeur qui ne peut être uin nombre
github.com/LimeSurvey/LimeSurvey/blob/7a...core_helper.php#L430
github.com/LimeSurvey/LimeSurvey/blob/7a...core_helper.php#L446
C'est à dire que les test en JS de
"" < 0
"" <= 0
"" > 0
"" >= 0
remonte toujours faux.
Tu peux remonter …
Mais le correctifs est difficile
Javascript '' < 0 remonte toujours FALSE, mais comme toute comparaison entre un nbre et une valeur qui ne peut être uin nombre
github.com/LimeSurvey/LimeSurvey/blob/7a...core_helper.php#L430
github.com/LimeSurvey/LimeSurvey/blob/7a...core_helper.php#L446
C'est à dire que les test en JS de
"" < 0
"" <= 0
"" > 0
"" >= 0
remonte toujours faux.
Tu peux remonter …
Mais le correctifs est difficile
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.
Attachments:
The following user(s) said Thank You: riqcles
The topic has been locked.
- riqcles
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 230
- Thank you received: 21
3 years 2 weeks ago #214745
by riqcles
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
Replied by riqcles on topic Problème de calcul avec la fonction countifop
Ah oui...pas évident.
Donc cette anomalie va nous suivre pendant plusieurs versions ?
actuellement en V3 et V4 ....
On va essayer de trouver un moyen de contournement.
Mais une correction aurai été mieux pour tout le monde.
Merci à vous tous d'avoir essayé de trouver une solution
Donc cette anomalie va nous suivre pendant plusieurs versions ?
actuellement en V3 et V4 ....
On va essayer de trouver un moyen de contournement.
Mais une correction aurai été mieux pour tout le monde.
Merci à vous tous d'avoir essayé de trouver une solution
LimeSurvey version 3.22.19
OS : CentOS 7.9 / PHP 7.2.4
BDD : PostGresql 11.x /
Future LimeSurvey version 6.4.1
OS : CentOS 7.9 / RockyLinux / PHP 8.2
BDD : PostGresql 15.x
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
3 years 2 weeks ago #214754
by DenisChenu
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.
Replied by DenisChenu on topic Problème de calcul avec la fonction countifop
la seule solution que je vois
Et encore : cela fonctionne parce-que tu force la réponse.
Code:
{(!LISTES_SQ01_VOIX.relevanceStatus OR LISTES_SQ01_VOIX.NAOK ge 0) AND (!LISTES_SQ02_VOIX.relevanceStatus OR LISTES_SQ02_VOIX.NAOK ge 0) AND … }
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