Acceder a la pestaña Templates o Plantillas en la administración del formulario.
A continuación, hacer clic en Nueva Plantilla o New Template.
Asignar un nombre a tu template.
Una vez creada, acceder a tu template haciendo clic sobre su nombre.
A continuación, se mostrará la opción de subir una plantilla.
En Microsoft Word o Excel, se podrán utilizar los valores de los campos de los formularios como parámetros de la plantilla. Copiar las etiquetas de los campos desde la configuración de las plantillas.
Para insertar un campo en la plantilla Word o Excel, simplemente hay que pegar entre corchetes dobles {{}} la etiqueta del campo.
Imprimir campos de tipo tabla
Para imprimir en la plantilla campos de tipo tabla, hay que crear una tabla en el documento Word que deberá tener 3 columnas:
Cabecera de la tabla
En la primera celda de la tabla en Word, hay que abrir la iteración por los valores de la tabla.
{%tc for col in metadata_invoice_items.col_labels %}
metadata_invoice_item es la etiqueta del campo tipo tabla, que hay que copiar como cualquier otro campo.
A continuación, en las celda continua poner:
{{ col }}
En la plantilla se generará una columna por cada columna definida en el campo itable.
Finalmente, en una tercera celda, se deberá cerrar el bucle de la cabecera.
{%tc endfor %}
Cuerpo de la tabla
A continuación, en una nueva fila, abrir el bucle que recorrerá los valores de la tabla.
{%tr for item in metadata_invoice_items.content %}
metadata_invoice_item es la etiqueta del campo tipo tabla, que se debe copiar como cualquier otro campo.
A continuación, en la siguiente fila, primera celda, abrir un nuevo bucle:
{%tc for col in item.cols %}
A continuación, en las celdas continuas poner:
{{ col }}
En una tercera celda, se deberá cerrar el bucle de la cabecera.
{%tc endfor %}
Finalmente, en una nueva fila, cerrar el primer bucle.
{%tr endfor %}
NOTA: Las palabras clave tc y tr únicamente están disponibles en las plantillas Word. Las plantillas en Excel no admiten estas palabras clave y habría que eliminarlas.
Como resultado del ejemplo anterior, se obtiene una tabla:
A partir del campo itable:
Imprimir items a partir de tablas
Para imprimir en la plantilla items a partir de las filas y columnas de una tabla, primero hay que abrir el bucle que iterará sobre los items de la plantilla, reemplazando "etiqueta_del_campo" por la etiqueta del campo de tipo table:
{% for item in etiqueta_del_campo.content %}
Luego agregar el texto que quedará fijo en cada iteración y las etiquetas de las columnas, donde {{ items.cols.num_de_col }} se reemplazará con el valor de ese número de columna dentro de cada fila de la tabla:
- Este es un texto de ejemplo donde {{ item.cols.0 }} es el valor de la columna 1, y {{ items.cols.1 }} es el valor de la columna 2.
Cerrando el bucle con:{% endfor %}
Se puede acceder a información más detallada sobre cómo crear una plantilla con Jasper Reports desde nuestro curso de Composición de Plantillas.
Imprimir campos de tipo JSON como tabla
Dada la siguiente estructura de datos almacenada en un campo de tipo JSON:
Se quiere imprimir en una plantilla, lo siguiente:
Es decir, por cada Contrato, se quiere una tabla que incluya los diferentes pagos y sus fechas.
Es posible imprimir esta información en una plantilla Word. Para ello, debemos iterar primero por los contratos:
{% for contract in my_json_file.contracts %}
{% endfor %}
A continuación, dentro de este bucle, debemos iterar por los pagos:
{% for contract in my_json_file.contracts %}
{% for instalment in contract.Instalment %}
{% endfor %}
{% endfor %}
Para imprimir un ID de contrato, usamos:
{{ contract.ContractId }}
Para pintar la fecha de un pago, usamos:
{{ Instalment.date }}
La anterior estructura nos sirve para recorrer los datos del campo tipo JSON, independientemente del formato que queramos darle.
Si lo que queremos es pintar una tabla, la sintaxis cambia ligeramente:
Documentación adicional sobre la creación de plantillas
Todas las funcionalidades que pueden utilizarse en las plantillas son las que se siguen en el formato Jinja:
https://jinja.palletsprojects.com/en/3.1.x/templates/
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.