- Posts: 72
- Thank you received: 4
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Identifier une sous question un tableau multiple (X /Y)...
- Philippe
- Topic Author
- Offline
- Senior Member
Less
More
3 years 4 months ago #207849
by Philippe
Identifier une sous question un tableau multiple (X /Y)... was created by Philippe
Bonjour à tous,
J'ai un tableau a multiples entrée texte (2 colonnes et 7 lignes comme sur la capture d'écran)
Je voudrais contrôler les entrées grace à une Regex (comme sur l'autre capture...)
Cependant je n'arrive pas a trouver comment identifier spécifiquement la cellule sur laquelle appliquer le Regex...
Habituellement par exemple je fais :
Équation de validation des sous-questions: regexMatch("/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/", Q200100_SQ001)
Sauf que la SQ001 définie comme ça représente la première ou la deuxième colonne de l'axe des X...
J'espère que je suis clair...
Merci de vous référer aux copies d'écrans qui sont plus explicite que mon charabia
Merci d'avance
Philippe
J'ai un tableau a multiples entrée texte (2 colonnes et 7 lignes comme sur la capture d'écran)
Je voudrais contrôler les entrées grace à une Regex (comme sur l'autre capture...)
Cependant je n'arrive pas a trouver comment identifier spécifiquement la cellule sur laquelle appliquer le Regex...
Habituellement par exemple je fais :
Équation de validation des sous-questions: regexMatch("/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/", Q200100_SQ001)
Sauf que la SQ001 définie comme ça représente la première ou la deuxième colonne de l'axe des X...
J'espère que je suis clair...
Merci de vous référer aux copies d'écrans qui sont plus explicite que mon charabia
Merci d'avance
Philippe
Attachments:
The topic has been locked.
- Philippe
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 72
- Thank you received: 4
3 years 4 months ago #207850
by Philippe
Replied by Philippe on topic Identifier une sous question un tableau multiple (X /Y)...
Bon, j'avance un peu quand même ...
Après différents test j'ai trouvé ça :
regexMatch("/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/", Q200100_SQ001_PECINIT)
Y a plus de surlignage en rouge indiquant une erreur cependant ça fonctionne pas... Je peux rentrer n'importnawouak dans la cellule ...
Je dois faire une bêtise ailleurs ...
Quelqu'un a t il déjà fait ce genre de manip ?
Mon idée est de contrôler les 14 cellules (7 en X1 (PECINIT) et 7 en X2 (PECFIN)
...
Si c'est possible ...
Amicalement
Philippe
Après différents test j'ai trouvé ça :
regexMatch("/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/", Q200100_SQ001_PECINIT)
Y a plus de surlignage en rouge indiquant une erreur cependant ça fonctionne pas... Je peux rentrer n'importnawouak dans la cellule ...
Je dois faire une bêtise ailleurs ...
Quelqu'un a t il déjà fait ce genre de manip ?
Mon idée est de contrôler les 14 cellules (7 en X1 (PECINIT) et 7 en X2 (PECFIN)
...
Si c'est possible ...
Amicalement
Philippe
The topic has been locked.
- Philippe
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 72
- Thank you received: 4
3 years 4 months ago #207851
by Philippe
Replied by Philippe on topic Identifier une sous question un tableau multiple (X /Y)...
Rhôôôôôô....
Je me réponds encore tout seul.... Décidément je fais vraiment n'importe quoi...
Apparemment le Regex ne fonctionne que si le questionnaire est "lancé" et pas avec une pré visualisation...
En fait ça agit lorsqu'on appuis sur le bouton suivant ...
--
Je pensais que c'était à la sortie du focus de la cellule...
Bref, perdez pas votre temps avec mes bêtises ... Je vais tenter de terminer et je reviens si ça fonctionne vraiment pas...
Amicalement
Philippe
Je me réponds encore tout seul.... Décidément je fais vraiment n'importe quoi...
Apparemment le Regex ne fonctionne que si le questionnaire est "lancé" et pas avec une pré visualisation...
En fait ça agit lorsqu'on appuis sur le bouton suivant ...
--
Je pensais que c'était à la sortie du focus de la cellule...
Bref, perdez pas votre temps avec mes bêtises ... Je vais tenter de terminer et je reviens si ça fonctionne vraiment pas...
Amicalement
Philippe
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13935
- Thank you received: 2551
3 years 4 months ago #207861
by DenisChenu
Mais ici : tu veux controller sur toute la colonne (ou ligne) ?
Si oui : il faut l'écrire au complet …
Tu ne peux pas faire un regexpMaptc sur un tableau de donnée …
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 Identifier une sous question un tableau multiple (X /Y)...
C'est pour cela que j'utilise toujours SX01 … pour l'axe X et SX02 pour l'axe Y.Philippe wrote: Équation de validation des sous-questions: regexMatch("/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/", Q200100_SQ001)
Sauf que la SQ001 définie comme ça représente la première ou la deuxième colonne de l'axe des X...
Mais ici : tu veux controller sur toute la colonne (ou ligne) ?
Si oui : il faut l'écrire au complet …
Tu ne peux pas faire un regexpMaptc sur un tableau de donnée …
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.
- Philippe
- Topic Author
- Offline
- Senior Member
Less
More
- Posts: 72
- Thank you received: 4
3 years 4 months ago #208136
by Philippe
Replied by Philippe on topic Identifier une sous question un tableau multiple (X /Y)...
Bonjour Denis,
Toujours un grand merci pour ta disponibilité sur ce forum.
Je veux contrôler indépendament chaque case du tableau...
Alors j'ai "trouvé" des solutions avec des regex dans les options LOGIQUE et la zone "Équation de validation des sous-questions: "
J'y ai mis ça :
Globalement ça marche bien pour les réponses de 1 à 5 (c'est assez simple) mais où ça "marchouille" c'est pour les questions 6 et 7 ...
Par exemple la 6 j'aimerais que les bornes soient entre 28 et 45 max avec 1 ou pas chiffre après la virgule (genre 28.6 ou 39.8 mais pas 28.55 ou 45.1 ... ) J'ai trouvé pour vérifier le fait qu'on rentre des "." ou des "," ...
La 7 c'est encore pire il faut contrôler un schéma de type (n)nn/(n)nn avec le premier chiffre en option et pas plus de 320 par exemple ... ça j'y arrive pas... J'ai le schéma mais les limites ... Marche pô...
Je fouille sur le web mais les Regex c'est un peu du chinois pour moi...
Amicalement
Philippe
Toujours un grand merci pour ta disponibilité sur ce forum.
Je veux contrôler indépendament chaque case du tableau...
Alors j'ai "trouvé" des solutions avec des regex dans les options LOGIQUE et la zone "Équation de validation des sous-questions: "
J'y ai mis ça :
Code:
(Q200100_SQ001_PECINIT!="" AND regexMatch("/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/", Q200100_SQ001_PECINIT)) AND (Q200100_SQ001_PECFIN!="" AND regexMatch("/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/", Q200100_SQ001_PECFIN)) AND (Q200100_SQ001_PECFIN > Q200100_SQ001_PECINIT) AND (Q200100_SQ002_PECINIT!="" AND regexMatch("/\b([1-9]|[1-8][0-9]|9[0-9]|[12][0-9]{2}|3[0-4][0-9]|350)\b/", Q200100_SQ002_PECINIT)) AND (Q200100_SQ002_PECFIN!="" AND regexMatch("/\b([1-9]|[1-8][0-9]|9[0-9]|[12][0-9]{2}|3[0-4][0-9]|350)\b/", Q200100_SQ002_PECFIN)) AND (Q200100_SQ003_PECINIT!="" AND regexMatch("/\b([1-9]|[1-5][0-9]|60)\b/", Q200100_SQ003_PECINIT)) AND (Q200100_SQ003_PECFIN!="" AND regexMatch("/\b([1-9]|[1-5][0-9]|60)\b/", Q200100_SQ003_PECFIN)) AND (Q200100_SQ004_PECINIT!="" AND regexMatch("/^(0|[1-9]?[0-9]|100)$/",Q200100_SQ004_PECINIT)) AND (Q200100_SQ004_PECFIN!="" AND regexMatch("/^(0|[1-9]?[0-9]|100)$/",Q200100_SQ004_PECFIN)) AND (Q200100_SQ005_PECINIT!="" AND regexMatch("/^(0|[1-9]?[0-9]|100)$/",Q200100_SQ005_PECINIT)) AND (Q200100_SQ005_PECFIN!="" AND regexMatch("/^(0|[1-9]?[0-9]|100)$/",Q200100_SQ005_PECFIN)) AND (Q200100_SQ006_PECINIT!="" AND regexMatch("/^(0|[2-4][0-9]{1})($|\,|.[0-9]{1})$/",Q200100_SQ006_PECINIT)) AND (Q200100_SQ006_PECFIN!="" AND regexMatch("/^(0|[2-4][0-9]{1})($|\,|.[0-9]{1})$/",Q200100_SQ006_PECFIN)) AND (Q200100_SQ007_PECINIT!="" AND regexMatch("/^([0-3]?[0-9][0-9]|2[0-3])\/[1-2]?[0-9][0-9]$/", Q200100_SQ007_PECINIT)) AND (Q200100_SQ007_PECFIN!="" AND regexMatch("/^([0-3]?[0-9][0-9]|2[0-3])\/[1-2]?[0-9][0-9]$/", Q200100_SQ007_PECFIN))
Globalement ça marche bien pour les réponses de 1 à 5 (c'est assez simple) mais où ça "marchouille" c'est pour les questions 6 et 7 ...
Par exemple la 6 j'aimerais que les bornes soient entre 28 et 45 max avec 1 ou pas chiffre après la virgule (genre 28.6 ou 39.8 mais pas 28.55 ou 45.1 ... ) J'ai trouvé pour vérifier le fait qu'on rentre des "." ou des "," ...
La 7 c'est encore pire il faut contrôler un schéma de type (n)nn/(n)nn avec le premier chiffre en option et pas plus de 320 par exemple ... ça j'y arrive pas... J'ai le schéma mais les limites ... Marche pô...
Je fouille sur le web mais les Regex c'est un peu du chinois pour moi...
Amicalement
Philippe
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13935
- Thank you received: 2551
3 years 4 months ago #208153
by DenisChenu
Sinon : regexMatch("/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/", Q200100_SQ001_PECINIT))
Cela confirme le besoin de le faire élément par élément ...
Cela me semble plus simple à comprendre que des regexp complexe, même si plus long à écrire.
A la base : le princnipal est de comprendre et de pouvoir adapter facilement
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 Identifier une sous question un tableau multiple (X /Y)...
Et on va dire de l'espagnole pourt moi (je suis nul en langie)Philippe wrote: Je fouille sur le web mais les Regex c'est un peu du chinois pour moi...
Sinon : regexMatch("/^(?:[01][0-9]|2[0-3]):[0-5][0-9]$/", Q200100_SQ001_PECINIT))
Cela confirme le besoin de le faire élément par élément ...
Je le ferais pas en regexp moi ...Par exemple la 6 j'aimerais que les bornes soient entre 28 et 45 max avec 1 ou pas chiffre après la virgule (genre 28.6 ou 39.8 mais pas 28.55 ou 45.1 ... ) J'ai trouvé pour vérifier le fait qu'on rentre des "." ou des "," ...
Code:
(is_empty(Q200100_SQ001_PECINIT.NAOK) OR ( intval(Q200100_SQ001_PECINIT.NAOK*10) == Q200100_SQ001_PECINIT.NAOK*10 AND 200100_SQ001_PECINIT.NAOK > 28 AND 200100_SQ001_PECINIT.NAOK <=45 )) AND (is_empty(Q200100_SQ002_PECINIT.NAOK) OR ( etc )
A la base : le princnipal est de comprendre et de pouvoir adapter facilement
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