Los campos de tipo tabla (iTable) en Athento permiten imprimir información estructurada en filas y columnas directamente dentro de plantillas Word.
Se utilizan, por ejemplo, para representar líneas de facturas, listados de items o cualquier conjunto de datos tabulares.
⚙️ Estructura general de un campo iTable
Un campo de tipo tabla contiene:
col_labels: los nombres de las columnas.
content: una lista de filas, donde cada fila tiene sus valores en
cols.
En una plantilla Word, debes usar las etiquetas especiales {%tc %} y {%tr %} para indicar al motor de plantillas cómo recorrer columnas y filas.
⚠️ Estas etiquetas (
tcytr) solo funcionan en plantillas Word.
En plantillas Excel deben eliminarse.
🧱 Paso 1. Crear la tabla en Word
1️⃣ Inserta una tabla de 3 columnas en tu documento.
2️⃣ En la primera fila (cabecera), colocaremos las etiquetas que recorrerán los títulos de las columnas.
3️⃣ En las siguientes filas, añadiremos los bucles que recorrerán los valores de la tabla.
🧩 Paso 2. Cabecera de la tabla
En la primera celda de la tabla:
{%tc for col in metadata_invoice_items.col_labels %}
Sustituye
metadata_invoice_itemspor la etiqueta real de tu campo de tipo tabla.
En la celda siguiente:
{{ col }}
En la tercera celda (para cerrar el bucle):
{%tc endfor %}
🧾 Resultado:
Esta fila generará automáticamente una celda por cada columna definida en el campo iTable.
📋 Paso 3. Cuerpo de la tabla
En una nueva fila, abre el bucle que recorrerá cada fila (item) de la tabla:
{%tr for item in metadata_invoice_items.content %}
A continuación, en una nueva fila (la que se repetirá), abre un nuevo bucle que recorrerá las columnas de esa fila:
{%tc for col in item.cols %}
En las celdas siguientes, inserta el valor de la celda:
{{ col }}
Y en la tercera celda, cierra el bucle de columnas:
{%tc endfor %}
Finalmente, en una fila nueva, cierra el bucle de filas:
{%tr endfor %}
🖼️ Estructura visual en Word
| Celda 1 | Celda 2 | Celda 3 |
|---|---|---|
{%tc for col in metadata_invoice_items.col_labels %} | {{ col }} | {%tc endfor %} |
{%tr for item in metadata_invoice_items.content %} | ||
{%tc for col in item.cols %} | {{ col }} | {%tc endfor %} |
{%tr endfor %} |
💡 Consejo: Usa una tabla real de Word y coloca las etiquetas en celdas separadas, no en párrafos fuera de la tabla.
🧠 Ejemplo completo
Supongamos que tienes un campo de tipo tabla metadata_invoice_items con las columnas:
Descripción
Cantidad
Precio
El bloque completo sería:
{%tc for col in metadata_invoice_items.col_labels %}
{{ col }}
{%tc endfor %}
{%tr for item in metadata_invoice_items.content %}
{%tc for col in item.cols %}
{{ col }}
{%tc endfor %}
{%tr endfor %}
Resultado en el documento:
| Descripción | Cantidad | Precio |
|---|---|---|
| Producto A | 2 | 25 € |
| Producto B | 1 | 30 € |
🧾 Imprimir items fuera de la tabla
También puedes recorrer los valores de la tabla en texto plano, por ejemplo, para generar párrafos dinámicos:
{% for item in metadata_invoice_items.content %}
Este es un producto: {{ item.cols.0 }} con cantidad {{ item.cols.1 }} y precio {{ item.cols.2 }}.
{% endfor %}
En este caso,
item.cols.0representa la primera columna,item.cols.1la segunda, etc.
🧩 Consejos finales
Las etiquetas
{%tc %}y{%tr %}deben estar dentro de celdas de Word.Asegúrate de usar el slug correcto del campo (
metadata_micampo).En Excel, elimina las palabras clave
tcytr, ya que no son compatibles.Si la tabla no se imprime, revisa:
Que el campo sea realmente de tipo iTable.
Que el JSON esté bien estructurado.
Que las etiquetas estén escritas con comillas rectas (
" ") y sin espacios adicionales.
✅ Resumen rápido
| Elemento | Etiqueta | Descripción |
|---|---|---|
| Cabecera | {%tc for col in campo.col_labels %} / {%tc endfor %} | Recorre las columnas |
| Filas | {%tr for item in campo.content %} / {%tr endfor %} | Recorre las filas |
| Valores | {%tc for col in item.cols %} / {%tc endfor %} | Muestra cada celda |
Con esta estructura podrás imprimir correctamente cualquier campo de tipo tabla en tus plantillas Word, ya sea para facturas, listados de items o datos tabulares complejos.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.