Welcome to the LimeSurvey Community Forum

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

RESTRICCION DE EDAD PARA MATRÍCULA

More
4 years 10 months ago #207193 by Chiripa
Hola Joffm.

Ya logré solucionar las validaciones. Te agrego un archivo con 2 ejemplos.

((232355X44X240.NAOK == "AO01") and ((!is_empty(232355X44X241.NAOK) && (232355X44X241.NAOK <= "2013-04-01")))) || ((232355X44X240.NAOK == "AO02") and ((!is_empty(232355X44X241.NAOK) && (232355X44X241.NAOK <= "2012-04-01"))))

En el archivo adjunto si seleccionas el grado PREESCOLAR y una fecha igual a 2013-3-31 o más antigua aparece un mesanje de EXTRAEDAD. Igual sucede si seleccionas PRIMERO y una fecha igual a 2012-3-31 o más antigua.

Me falta agregar las otras validaciones pero eso ya no es inconveniente.

He investigado bastante pero no encuentro la manera de finalizar la encuesta si aparece el mensaje de "EXTRAEDAD". Con cuotas (quotes) no funciona porque la pregunta es de tipo (Mostrar Texto).

Me puedes por favor ayudar?

Gracias
The topic has been locked.
More
4 years 10 months ago - 4 years 10 months ago #207201 by Joffm
Hola,
Otra solución, mejor:
O establece la fecha mínima


o usa esta ecuación y luego la cuota.


((232355X44X240.NAOK == "AO01") and ((!is_empty(232355X44X241.NAOK) && (232355X44X241.NAOK <= "2013-04-01")))) || ((232355X44X240.NAOK == "AO02") and ((!is_empty(232355X44X241.NAOK) && (232355X44X241.NAOK <= "2012-04-01"))))


1. No uses "Condition designer', siempre ExpressionScript.
2. Te dijé que tienes que usar códigos numéricos para los grados (NO "AO01", "AO02", pero "1", "2")
Quieres calcular con los còdigos.

Te mandé un ejemplo que funciona para cada grado porque calcula y este tambien.
Todas son funciónes dinámicas para cada grado

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 4 years 10 months ago by Joffm.
The topic has been locked.
More
4 years 10 months ago #207205 by Chiripa
Entre más aprendo menos se.

1. He estado probando el archivo que me enviaste pero con cualqueir fecha
siempre me aparece el mismo aviso "Bueno, continuamos". Por eso te
decía que no funciona.

2. Del ejemplo que te envié intenté agregar el código que me dices
date('Y-m-d',mktime(0,0,0,3,31,2014-Q00007)) pero no encuentro más
campos o como hacerlo para agregar todas las validaciones. Adjunto
imagen.

3. Si al usuario le aparece un mensaje "ESTUDIANTE EN EXTRAEDAD" como
hago para finalizar la encuesta?
The topic has been locked.
More
4 years 10 months ago #207231 by Joffm

1. He estado probando el archivo que me enviaste pero con cualqueir fecha
siempre me aparece el mismo aviso "Bueno, continuamos". Por eso te
decía que no funciona.

La encuesta esta activa?
Cuotas soloamente funcionan en encustas activas, claro.

Del ejemplo que te envié intenté agregar el código que me dices
date('Y-m-d',mktime(0,0,0,3,31,2014-Q00007)) pero no encuentro más
campos o como hacerlo para agregar todas las validaciones. Adjunto
imagen.

No necesitas mas.
Se hay códigos numericos en Q00007 esta parte "2014-Q00007" calcula el año correcto.

Si al usuario le aparece un mensaje "ESTUDIANTE EN EXTRAEDAD" como
hago para finalizar la encuesta?

Se quieres terminar tienes que usar la cuota.

La validation (fecha minima) solo evita una continuación.


Bueno, tienes dos opciones alternativas.
Elige que te gusta mas.

Aqui todos los dos ejemplos otra vez.

File Attachment:

File Name: limesurvey...ima).lss
File Size:37.28 KB

File Attachment:

File Name: limesurvey...ota).lss
File Size:41.27 KB


Joffm

No ayuda por mensajes privados.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
4 years 10 months ago - 4 years 10 months ago #207305 by Chiripa
Last edit: 4 years 10 months ago by Chiripa. Reason: Ya lo solucione.
The topic has been locked.
More
4 years 10 months ago - 4 years 10 months ago #207306 by Chiripa
Last edit: 4 years 10 months ago by Chiripa. Reason: Ya lo solucione.
The topic has been locked.
More
4 years 9 months ago #207308 by Chiripa
Hola Joffm.

Probé los 2 archivos que me enviaste y el que mejor me funciona es el de las cuotas. Muchas gracias por tu paciencia y tiempo.

En la misma encuesta tengo algo similar pero unicamente tengo que evaluar solo la fecha. Si la fecha es mayor a 31-03-2007 debe aparcer un mensaje y finalizar la encuesta. Ya ví que con cuotas lo puedo hacer pero lo que todavia no le encuentro la lógica a las formulas que usas.

Al finalizar la matrícula me gustaría, si así lo consideras, colocar tus creditos por tu valiosa colaboración.

Cordial saludo.
The topic has been locked.
More
4 years 9 months ago #207321 by Joffm
Es muy fácil de hacer.
Aquí solo se compara si la fecha es anterior o la misma.
Entonces creas una ecuación que devuelve un 1, de lo contrario un 0.
{if (QCode le '2007-03-31', 1,0)}

Para entender, lees lo que escribí en la parte en inglés.

También debe estudiar los estudios de muestra.
www.limesurvey.org/manual/ExpressionScript_sample_surveys

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
4 years 9 months ago #207410 by Chiripa
Buenas tardes Joffm.

Probé la ecuación que me enviaste utilizando todo lo que muy amablemente me has enseñado y estuve revisando la página de ExpressionScript_sample_surveys que me enviaste.

Realicé una encuesta de prueba, utilicé la ecuación que me enviaste, configuré la cuota, active la encuesta pero no me funcionó.

Dentro de la página de ExpressionScript no encontré las palabras reservadas que tiene todo lenguaje de programación. Cuál lengiaje para las ecuaciones usa LS?

Para el ejemplo que te adjunto, nuestro colegio tiene jornada noche que es por ciclos y no por grados. Los adultos van a tomar clases en la noche y hay unas restricciónes:

1. En ningún ciclo se puede matricular un estudiante menor de 14 años. Es decir deben tener 14 años cumplidos.

2. Para matricularse en el ciclo 5 el estudiante debe tener 17 años cumplidos.

3. Para matricularse en el ciclo 6 el estudiante debe tener 18 años cumplidos.

¿Cómo se puede hacer la ecuación utilizando por ejemplo or o en otro lenguaje se utilizan los simbolos || en reemplazo de or? ¿En este lenguaje de LS cúal sería el or?

En tu ecuacion usas le . ¿Para que se usa o en cúales casos?

Gracias
The topic has been locked.
More
4 years 9 months ago #207460 by Chiripa

Chiripa wrote: Buenas tardes Joffm.

Probé la ecuación que me enviaste utilizando todo lo que muy amablemente me has enseñado y estuve revisando la página de ExpressionScript_sample_surveys que me enviaste.


Dentro de la página de ExpressionScript no encontré las palabras reservadas que tiene todo lenguaje de programación. Cuál lengiaje para las ecuaciones usa LS?

Para el ejemplo que te adjunto, nuestro colegio tiene jornada noche que es por ciclos y no por grados. Los adultos van a tomar clases en la noche y hay unas restricciónes:

1. En ningún ciclo se puede matricular un estudiante menor de 14 años. Es decir deben tener 14 años cumplidos.

2. Para matricularse en el ciclo 5 el estudiante debe tener 17 años cumplidos.

3. Para matricularse en el ciclo 6 el estudiante debe tener 18 años cumplidos.

¿Cómo se puede hacer la ecuación utilizando por ejemplo or o en otro lenguaje se utilizan los simbolos || en reemplazo de or? ¿En este lenguaje de LS cúal sería el or?

En tu ecuacion usas le . ¿Para que se usa o en cúales casos?

Gracias


Observando un poco más detallado veo que en una ecuacion para la fecha utilizas el guión al medio ( - ) y en otra utilizas coma ( , ) por que se hace así?

{if (Q00128 le '2007-03-31', 1,0)}

(0,0,0,4,01,2014-Q00007)) le Q00025,1,0)}
The topic has been locked.
More
4 years 9 months ago #207486 by Joffm
Sabes calcular una fecha que depende de una variable (grado, ciclo, ...).
También sabe cómo crear una ecuación para comparar dos fechas con un resultado de "0" o "1" y usarlo para las cuotas.
También sabe cómo generar cuotas y cómo darle a cada cuota un texto especial (parte alemana del foro).
Entonces no sé cuál es tu problema.

Otras preguntas:
Estos son sinónimos:
"AND" - "&&"
"OR" - "||"
"==" - "eq" (equal)
"! =" - "ne" (not equal)
"<" - "lt" (less than)
"<=" - "le" (less or equal)
"> =" - "ge" (greater or equal)
">" - "gt" (greater than)
Como está en el manual
www.limesurvey.org/manual/ExpressionScri...esentation#Operators
The ExpressionScript supports the following syntax:
  • All standard mathematical operators (e.g. +,-,*,/,!);
  • All standard comparison operators (e.g. <,<=,==,!=,>,>=, plus their equivalents: lt, le, eq, ne, gt, ge);
  • Parentheses (so you can group sub-expressions);
  • Conditional operators (e.g. &&,| | and their equivalents: and, or);
  • Single and double-quoted strings (which can each embed strings with the other quote type);
  • Comma operator (so can have a list of expressions and just return the final result);
  • Assignment operator (=);
  • Pre-defined variables (to refer to questions, question attributes, and responses) - e.g., the SGQA codes;
  • Pre-defined functions (there are already 80+, and it is easy to add more).
Y puede utilizar todas las funciones que se implementan en LimeSurvey.

2007-03-31: Representación de la fecha en la base de datos MySQL (siempre "AAAA-MM-DD")
dev.mysql.com/doc/refman/8.0/en/datetime.html
The DATE type is used for values with a date part but no time part. MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'.

Sintaxis de la php función "mktime"
mktime(hora, minuto, segundo, mes, día, año)

www.php.net/manual/es/function.mktime.php

Y explicado aquí
forums.limesurvey.org/forum/can-i-do-thi...splaying-text#207299

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
Moderators: holchtpartner

Lime-years ahead

Online-surveys for every purse and purpose