Saltar al contenido principal

Listas en plantillas: viñetas y numeradas

Las listas son estructuras fundamentales para organizar y presentar información en documentos. PDF4meEl motor de plantillas admite la generación de listas con viñetas y numeradas, lo que le permite crear documentos bien estructurados y legibles con contenido dinámico procedente de sus fuentes de datos.


Listas con viñetas

Genera listas con viñetas colocando bucles foreach dentro de párrafos con formato de viñetas en tu Word plantilla.

Sintaxis básica de las listas con viñetas

Crea un párrafo con viñetas en Word, luego agrega el bucle foreach:

<<foreach [bullet in EmployeeNames]>><<[bullet.listFirstName]>> <<[bullet.listLastName]>>
<</foreach>>

Pasos clave:

  1. En Word, crea una viñeta (usa el formato de viñeta)
  2. Agregue el bucle foreach y combine los campos.
  3. El bucle repetirá el punto de la lista para cada elemento.

Ejemplo: Lista de nombres de empleados

Diseño de la plantilla:

Employee Directory:
• <<foreach [bullet in EmployeeNames]>><<[bullet.listFirstName]>> <<[bullet.listLastName]>>
<</foreach>>

Fuente de datos:

{
"companyName": "PDF4me",
"EmployeeNames": [
{
"listFirstName": "Thomas",
"listLastName": "Baskin"
},
{
"listFirstName": "Jacob",
"listLastName": "Gregory"
},
{
"listFirstName": "John",
"listLastName": "Doe"
}
]
}

Salida generada:

Employee Directory:
• Thomas Baskin
• Jacob Gregory
• John Doe

Listas numeradas

Generar listas numeradas utilizando el mismo enfoque foreach, pero con formato de párrafo numerado en Word.

Sintaxis de lista numerada

Numbered List - Instead of bullets, if you apply the syntax in a numbered paragraph format in Word, the list will be generated as a numbered list with automatic numbering.

Ejemplo: Lista de tareas

Plantilla:

Project Tasks:
1. <<foreach [task in tasks]>><<[task.name]>> - <<[task.status]>>
<</foreach>>

Datos:

{
"tasks": [
{ "name": "Design mockups", "status": "Complete" },
{ "name": "Develop features", "status": "In Progress" },
{ "name": "Testing phase", "status": "Pending" }
]
}

Producción:

Project Tasks:
1. Design mockups - Complete
2. Develop features - In Progress
3. Testing phase - Pending

Listas multinivel

Crea estructuras de listas jerárquicas con relaciones padre-hijo utilizando bucles foreach anidados.

Ejemplo de jerarquía de dos niveles

Diseño de la plantilla:

<<foreach [manager in employees]>>Manager: <<[manager.listFirstName]>> <<[manager.listLastName]>>
<<foreach [associate in manager.associates]>>Associate: <<[associate.name]>>
<</foreach>><</foreach>>

Importante: Los elementos de la lista de segundo nivel deben estar indentados en su Word Plantilla para crear un formato jerárquico adecuado.


Ejemplo: Estructura organizativa

Estructura de datos:

{
"companyName": "PDF4me",
"employees": [
{
"listFirstName": "Christopher",
"listLastName": "Nolan",
"associates": [
{ "name": "Will Smith" },
{ "name": "Barry Allen" },
{ "name": "Oliver Queen" }
]
},
{
"listFirstName": "Sarah",
"listLastName": "Parker",
"associates": []
},
{
"listFirstName": "Justin",
"listLastName": "Langer",
"associates": [
{ "name": "Brad Pitt" },
{ "name": "John Smith" }
]
}
]
}

Salida generada:

• Manager: Christopher Nolan
○ Associate: Will Smith
○ Associate: Barry Allen
○ Associate: Oliver Queen
• Manager: Sarah Parker
• Manager: Justin Langer
○ Associate: Brad Pitt
○ Associate: John Smith

Manejo de sublistas vacías

Utilice comprobaciones condicionales para gestionar los casos en los que las sublistas puedan estar vacías.

Sublista condicional

Plantilla:

<<foreach [manager in employees]>>Manager: <<[manager.listFirstName]>> <<[manager.listLastName]>>
<<if [manager.associates.Any()]>>
<<foreach [associate in manager.associates]>>Associate: <<[associate.name]>>
<</foreach>>
<<else>>
No associates assigned
<</if>>
<</foreach>>

Elementos de lista formateados

Aplique formato al contenido de los elementos de la lista para una mejor presentación.

Ejemplo: Nombres y fechas formateados

Plantilla:

• <<foreach [employee in employees]>><<[employee.name]:caps>> - Joined: <<[employee.joinDate]:"MMMM yyyy"]>>
<</foreach>>

Datos:

{
"employees": [
{ "name": "john smith", "joinDate": "2020/03/15" },
{ "name": "jane doe", "joinDate": "2021/07/22" }
]
}

Producción:

• John Smith - Joined: March 2020
• Jane Doe - Joined: July 2021

Listas ordenadas

Genera listas en órdenes específicos utilizando métodos de enumeración.

Lista ordenada alfabéticamente

Plantilla:

• <<foreach [person in people.OrderBy(p => p.lastName)]>><<[person.lastName]>>, <<[person.firstName]>>
<</foreach>>

Ordenado por múltiples propiedades

Plantilla:

• <<foreach [emp in employees.OrderBy(e => e.department).ThenBy(e => e.name)]>><<[emp.name]>> - <<[emp.department]>>
<</foreach>>

Listas filtradas

Mostrar únicamente los artículos que cumplan con criterios específicos.

Filtrado condicional

Plantilla:

Active Employees:
• <<foreach [emp in employees.Where(e => e.status == "Active")]>><<[emp.name]>>
<</foreach>>

Filtrado basado en la edad

Plantilla:

Senior Team Members:
• <<foreach [person in team.Where(p => p.age > 50)]>><<[person.name]>> (Age: <<[person.age]>>)
<</foreach>>

Tipos de listas mixtas

Combina diferentes estilos de lista dentro del mismo documento.

Ejemplo: Resumen del proyecto

Plantilla:

Project Phases (Numbered):
1. <<foreach [phase in phases]>><<[phase.name]>>
<</foreach>>

Team Members (Bulleted):
• <<foreach [member in team]>><<[member.name]>> - <<[member.role]>>
<</foreach>>

Ejemplos complejos de varios niveles

Jerarquía de tres niveles

Plantilla:

<<foreach [dept in departments]>>Department: <<[dept.name]>>
<<foreach [team in dept.teams]>>Team: <<[team.name]>>
<<foreach [member in team.members]>><<[member.name]>> - <<[member.position]>>
<</foreach>>
<</foreach>>
<</foreach>>

Esto crea:

  • Nivel 1: Departamento (formato de viñetas 1)
    • Nivel 2: Equipo (estilo bala 2)
      • Nivel 3: Miembro (estilo de viñeta 3)

Diseño de listas en Word Plantilla

Configurar el formato de la lista

  1. Crear estructura de lista - Usar Wordherramientas de formato de lista integradas
  2. Elige el estilo de viñetas - Seleccione el estilo de viñeta o numeración adecuado.
  3. Establecer sangría - Configurar los niveles de sangría para listas multinivel
  4. Agregar campos de combinación - Insertar bucles foreach y sintaxis de fusión de campos
  5. Mantener el formato - Asegúrese de que el formato de lista se aplique al texto de la plantilla.

Niveles de indentación

Para listas multinivel:

  • Nivel 1: Sin sangría o sangría de primer nivel
  • Nivel 2: Un aumento de tabulación o sangría
  • Nivel 3: Dos tabulaciones o sangría de segundo nivel

Word Gestiona automáticamente el estilo de las viñetas/números en función del nivel de sangría.


Aplicaciones prácticas

Caso de uso 1: Agenda de la reunión

Plantilla:

Meeting Agenda - <<[meetingDate]:"MMMM dd, yyyy">>

1. <<foreach [item in agendaItems]>><<[item.title]>> (<<[item.duration]>> min)
<</foreach>>

Attendees:
• <<foreach [attendee in attendees]>><<[attendee.name]>> - <<[attendee.department]>>
<</foreach>>

Caso de uso 2: Características del producto

Plantilla:

<<[productName]>> Features:

• <<foreach [feature in features]>><<[feature.name]>> - <<[feature.description]>>
<</foreach>>

Technical Specifications:
1. <<foreach [spec in specifications]>><<[spec.parameter]>>: <<[spec.value]>>
<</foreach>>

Caso de uso 3: Artículos de factura

Plantilla:

Order Items:
<<foreach [item in orderItems]>>
<<[$index + 1]>>. <<[item.name]>> - Quantity: <<[item.qty]>> - Price: $<<[item.price]>>
<</foreach>>

Total Items: <<[orderItems.Count()]>>
Total Amount: $<<[orderItems.Sum(i => i.qty * i.price)]>>

Mejores prácticas

Diseño de listas

  1. Formato consistente - Utilice el mismo estilo de lista para tipos de contenido similares.
  2. Profundidad adecuada - Limitar el anidamiento a 3-4 niveles para facilitar la lectura.
  3. Agrupación lógica - Agrupar elementos relacionados
  4. Jerarquía clara - Utiliza diferentes estilos de viñetas para diferentes niveles.

Estructura de datos

  1. Colecciones limpias - Asegúrese de que las colecciones contengan datos válidos y completos.
  2. Propiedades consistentes - Utilice nombres de propiedades consistentes en todos los elementos.
  3. Manejar valores nulos - Compruebe si hay colecciones vacías con Any()
  4. Clasificar adecuadamente - Preordenar los datos o usar OrderBy en las plantillas.

Actuación

  1. Limitar el tamaño de la lista - Considere la paginación para listas muy largas.
  2. Filtrar de manera eficiente - Aplicar filtros en la fuente de datos cuando sea posible.
  3. Evite la anidación compleja. - El anidamiento profundo puede afectar la velocidad de procesamiento.

:::Consejo Formato de lista Aplique formato de lista (viñetas, números, sangría) directamente en su Word plantilla antes de agregar bucles foreach. El motor de plantillas conserva el formato que usted estableció en Word.

:::