Formar expresiones

Puede utilizar expresiones en su encuesta para controlar el comportamiento predeterminado de las preguntas. Puede ocultar o mostrar una pregunta o un grupo de preguntas en función de las respuestas anteriores con la ayuda de expresiones en la columna relevant. Una pregunta oculta con una expresión en la columna relevant no puede enviar ningún dato a la encuesta, y los datos introducidos previamente en el campo se eliminan.

También puede aplicar expresiones a la columna readonly, que pueden deshabilitar la escritura en una pregunta o un grupo en función del resultado de la expresión. La columna required también admite expresiones, lo cual permite a la encuesta obligar al usuario a responder a la pregunta solamente en condiciones concretas.

Nota:

No se admiten expresiones de solo lectura en la aplicación web.

Siempre se debe hacer referencia a las preguntas anteriores en las expresiones con el formato ${field_name}.

Expresiones sencillas

La forma más sencilla de usar una de estas expresiones es modificar el comportamiento o la visibilidad de una pregunta, a menos que previamente se haya dado una respuesta concreta. Por ejemplo, esta expresión comprobará si la respuesta a la pregunta anterior tiene el valor True:

${previous_question} = 'true'

Este ejemplo comprobará si la respuesta a la pregunta anterior es mayor que o igual a 100:

${previous_question} < 100

Las preguntas select_multiple guardan sus valores de un modo distinto a otros tipos de preguntas, con cada respuesta activada introducida en el orden en que se seleccionó y separada de las demás por comas. Por ejemplo, al seleccionar las respuestas A y B en ese orden, las respuestas aparecerán como A,B. Para usar una pregunta select_multiple como parte de una expresión, tendrá que usar el comanselecteddo selected. Este ejemplo comprueba si el usuario respondió a la pregunta anterior con 'A', y funcionará independientemente del resto de respuestas elegidas:

selected(${previous_question}, 'A')

El ccount-selectedomando count-selected cuenta el número de opciones que se han seleccionado en una pregunta select_multiple y proporciona un número para utilizarlo como operador. Este ejemplo comprueba si en la pregunta anterior se han seleccionado más de dos opciones:

count-selected(${previous_question}) > 2

Puede usar la función count-selected como restricción en las preguntas de imagen o archivo con la aparienciamultilinepara controlar el número de archivos enviados.

Expresiones matemáticas

Este ejemplo combina varios operadores y preguntas:

${previous_question} + ${other_previous_question} <= 100

Cuando use operadores matemáticos, tenga en cuenta que en ocasiones es necesario convertir valores en números. En el ejemplo anterior, se ha supuesto que y eran eprevious_questionother_previous_questionnteros o decimales, pero ¿qué sucedería si los tipos de preguntas fueran cadenas de caracteres?

int(${previous_question}) + int(${other_previous_question}) <= 100

También puede aplicar expresiones matemáticas en preguntas date, que se guardan como tiempo Unix, el número de milisegundos transcurridos desde el 1 de enero de 1970. Esta expresión solo revela una pregunta si la respuesta a la pregunta anterior es anterior en más de dos semanas a la fecha actual:

if( ${previous_question}='',false,today() - ${previous_question} > 1000*60*60*24*15)

Expresiones regulares

Las expresiones regulares se pueden usar en las columnas relevant, readonly y required para modificar el comportamiento de una pregunta, a menos que la cadena proporcionada por otra pregunta esté en un formato concreto. Este ejemplo, cuando se coloca en la columna relevant, solamente mostrará una pregunta si se ha respondido a otra pregunta usando únicamente letras:

regex(${question},'[A-Za-z]')

Para obtener más información sobre las expresiones regulares, consulte Fórmulas.