Al construir tus plantillas puedes verte en la necesidad de manejar tus datos de forma avanzada, para esto te recomendamos utilizar las siguientes estructuras:

Estructura for

En los ítems de tipo Colección de elementos (aquellos que almacenan múltiples registros de datos) la estructura for permitirá iterar sobre ellos para devolver toda la información requerida.

Ejemplo:

La pregunta 13 corresponde a una colección de elementos, formada por 3 columnas en la que los participantes podían ingresar tantas filas de respuestas como fueran necesarias. En este caso preguntamos por el nombre, tipo y edad de sus mascotas.



Si deseamos devolver todos los datos que el usuario ingresó en las filas de esta pregunta, podemos utilizar la estructura for de la siguiente manera:

Paso 1: Generar la estructura de cabeceras

Se deben establecer los nombres de las cabeceras construyendo una tabla de una fila y con tantas columnas tenga el ítem en cuestión, ingresando la variable correspondiente en cada una de ellas. Para el caso del ejemplo se creará una tabla de una fila y 3 columnas, donde en cada celda se ingresará la variable:

{{ pregunta13.columns [i] }} 

Importante: I corresponde al número de la columna. Tanto en columnas como en filas la numeración comienza en 0, por lo que la primera columna se identifica con el índice [0], la segunda con [1] y así sucesivamente.

Paso 2: Incorporar la estructura for

La estructura for se compone de:

  • Una apertura: {% for row in pregunta13.rows %}, donde:

    • row es la variable definida

    • pregunta13.rows es el ítem dentro del cual se realizará la iteración (esta estructura viene establecida en la sección de variables de la plataforma)

  • Un cuerpo: que establece la acción a ejecutar, en este caso iteraremos sobre cada fila por lo que el cuerpo será:

    • {{ row[i] }}. Donde i establece el valor de la columna.

  • Un cierre que es siempre igual: {% endfor %}.

Con esta estructura el reporte creará automáticamente la cantidad de filas exactas para cada participante, respetando la cantidad de respuestas que haya ingresado, es decir, si el participante solo ingresó una fila de respuestas solo se generará una fila en su reporte, mientras que si otro ingresó 5 filas, se generarán estas 5 en su reporte y así de acuerdo a cada caso.

Forma alternativa de construir tablas con información:

Una forma alternativa de crear tablas con una estructura fija, es decir, que todos los participantes tengan la misma cantidad de filas es la siguiente:

Cada celda de respuesta se define con la estructura {{ item [número de fila][número de columna] }}.


Estructura if

Permite condicionar la visualización de secciones del reporte en base a condiciones establecidas.

Ejemplo:

Para el caso del ejercicio anterior pueden existir participantes que hayan indicado no poseer mascota, por lo que no tendrán respuestas en la pregunta 13. Al no establecer ninguna condición en el reporte, las tablas que hemos creado se visualizarán tanto para las personas que indicaron tener mascota como de aquellas que indicaron no tenerlos.

Para restringir esta sección del reporte solo para aquellas que hayan indicado tenerlos podemos establecer la siguiente condición utilizando la estructura if:

La estructura if se compone de una apertura: {% if item == "valor" %}, donde:

  • item corresponde a la variable

  • == a la condición

  • "valor" al resultado condicionado (de ser texto deber expresarse entre comillas, si fuera un número debe ir sin ellas)

Y de un cierre que es siempre igual: {% endif %} y que se debe colocar donde finaliza el condicionamiento.