Listas em Modelos - Marcadores e Numeradas
Listas são estruturas fundamentais para organizar e apresentar informações em documentos. PDF4meO mecanismo de modelos do [nome da plataforma] suporta a geração de listas com marcadores e listas numeradas, permitindo que você crie documentos bem estruturados e legíveis com conteúdo dinâmico proveniente de suas fontes de dados.
Listas com marcadores
Gere listas com marcadores inserindo loops foreach dentro de parágrafos formatados com marcadores em seu texto. Word modelo.
Sintaxe básica de lista com marcadores
Crie um parágrafo com marcadores em WordEm seguida, adicione o loop foreach:
<<foreach [bullet in EmployeeNames]>><<[bullet.listFirstName]>> <<[bullet.listLastName]>>
<</foreach>>
Etapas principais:
- Em WordCrie um tópico com marcadores (use a formatação de marcadores).
- Adicione o loop foreach e mescle os campos.
- O loop repetirá o tópico para cada item.
Exemplo: Lista de Nomes de Funcionários
Design do modelo:
Employee Directory:
• <<foreach [bullet in EmployeeNames]>><<[bullet.listFirstName]>> <<[bullet.listLastName]>>
<</foreach>>
Fonte de dados:
{
"companyName": "PDF4me",
"EmployeeNames": [
{
"listFirstName": "Thomas",
"listLastName": "Baskin"
},
{
"listFirstName": "Jacob",
"listLastName": "Gregory"
},
{
"listFirstName": "John",
"listLastName": "Doe"
}
]
}
Resultado gerado:
Employee Directory:
• Thomas Baskin
• Jacob Gregory
• John Doe
Listas Numeradas
Gere listas numeradas usando a mesma abordagem com o loop foreach, mas com formatação de parágrafos numerados. Word.
Sintaxe 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.
Exemplo: Lista de Tarefas
Modelo:
Project Tasks:
1. <<foreach [task in tasks]>><<[task.name]>> - <<[task.status]>>
<</foreach>>
Dados:
{
"tasks": [
{ "name": "Design mockups", "status": "Complete" },
{ "name": "Develop features", "status": "In Progress" },
{ "name": "Testing phase", "status": "Pending" }
]
}
Saída:
Project Tasks:
1. Design mockups - Complete
2. Develop features - In Progress
3. Testing phase - Pending
Listas de vários níveis
Crie estruturas de listas hierárquicas com relações pai-filho usando loops foreach aninhados.
Exemplo de hierarquia de dois níveis
Design do modelo:
<<foreach [manager in employees]>>Manager: <<[manager.listFirstName]>> <<[manager.listLastName]>>
<<foreach [associate in manager.associates]>>Associate: <<[associate.name]>>
<</foreach>><</foreach>>
Importante: Os itens da lista de segundo nível devem ser recuados em seu Word Modelo para criar formatação hierárquica adequada.
Exemplo: Estrutura Organizacional
Estrutura de dados:
{
"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" }
]
}
]
}
Resultado gerado:
• Manager: Christopher Nolan
○ Associate: Will Smith
○ Associate: Barry Allen
○ Associate: Oliver Queen
• Manager: Sarah Parker
• Manager: Justin Langer
○ Associate: Brad Pitt
○ Associate: John Smith
Lidando com sublistas vazias
Utilize verificações condicionais para lidar com casos em que as sublistas podem estar vazias.
Lista condicional
Modelo:
<<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>>
Itens de lista formatados
Aplique formatação ao conteúdo dos itens da lista para uma apresentação aprimorada.
Exemplo: Nomes e datas formatados
Modelo:
• <<foreach [employee in employees]>><<[employee.name]:caps>> - Joined: <<[employee.joinDate]:"MMMM yyyy"]>>
<</foreach>>
Dados:
{
"employees": [
{ "name": "john smith", "joinDate": "2020/03/15" },
{ "name": "jane doe", "joinDate": "2021/07/22" }
]
}
Saída:
• John Smith - Joined: March 2020
• Jane Doe - Joined: July 2021
Listas ordenadas
Gere listas em ordens específicas usando métodos de enumeração.
Lista em ordem alfabética
Modelo:
• <<foreach [person in people.OrderBy(p => p.lastName)]>><<[person.lastName]>>, <<[person.firstName]>>
<</foreach>>
Classificado por múltiplas propriedades
Modelo:
• <<foreach [emp in employees.OrderBy(e => e.department).ThenBy(e => e.name)]>><<[emp.name]>> - <<[emp.department]>>
<</foreach>>
Listas filtradas
Exibir apenas os itens que atendem a critérios específicos.
Filtragem condicional
Modelo:
Active Employees:
• <<foreach [emp in employees.Where(e => e.status == "Active")]>><<[emp.name]>>
<</foreach>>
Filtragem baseada na idade
Modelo:
Senior Team Members:
• <<foreach [person in team.Where(p => p.age > 50)]>><<[person.name]>> (Age: <<[person.age]>>)
<</foreach>>
Tipos de listas mistas
Combine diferentes estilos de lista no mesmo documento.
Exemplo: Visão Geral do Projeto
Modelo:
Project Phases (Numbered):
1. <<foreach [phase in phases]>><<[phase.name]>>
<</foreach>>
Team Members (Bulleted):
• <<foreach [member in team]>><<[member.name]>> - <<[member.role]>>
<</foreach>>
Exemplos complexos de vários níveis
Hierarquia de três níveis
Modelo:
<<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>>
Isso cria:
- Nível 1: Departamento (estilo de marcador 1)
- Nível 2: Equipe (estilo de bala 2)
- Nível 3: Membro (estilo de marcador 3)
- Nível 2: Equipe (estilo de bala 2)
Design de lista em Word Modelo
Configurando a formatação da lista
- Criar estrutura de lista - Usar Wordferramentas de formatação de listas integradas
- Escolha o estilo de marcador - Selecione o estilo de marcador ou numeração apropriado
- Definir recuo - Configurar níveis de recuo para listas com vários níveis
- Adicionar campos de mesclagem - Inserir loops foreach e sintaxe de mesclagem de campos
- Manter a formatação - Certifique-se de que a formatação da lista seja aplicada ao texto do modelo.
Níveis de recuo
Para listas com vários níveis:
- Nível 1: Sem recuo ou recuo de primeiro nível
- Nível 2: Um aumento de tabulação ou recuo
- Nível 3: Duas tabulações ou recuo de segundo nível
Word Lida automaticamente com a formatação de marcadores/números com base no nível de recuo.
Aplicações práticas
Caso de uso 1: Agenda de reunião
Modelo:
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: Recursos do produto
Modelo:
<<[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: Itens da fatura
Modelo:
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)]>>
Melhores práticas
Design de lista
- Formatação consistente - Use o mesmo estilo de lista para tipos de conteúdo semelhantes.
- Profundidade adequada - Limite o aninhamento a 3-4 níveis para facilitar a leitura.
- Agrupamento lógico - Agrupe itens relacionados.
- Hierarquia clara - Use estilos de marcadores diferentes para níveis diferentes
Estrutura de dados
- Coleções limpas - Garantir que as coleções contenham dados válidos e completos.
- Propriedades consistentes - Utilize nomes de propriedades consistentes em todos os itens.
- Lidar com valores nulos - Verifique se há coleções vazias com
Any() - Classifique adequadamente - Pré-classifique os dados ou use OrderBy nos modelos.
Desempenho
- Limitar o tamanho da lista - Considere a paginação para listas muito longas.
- Filtrar com eficiência - Aplique filtros na fonte de dados sempre que possível.
- Evite aninhamentos complexos - O aninhamento profundo pode afetar a velocidade de processamento.
:::dica Formatação de listas Aplique a formatação de listas (marcadores, números, recuo) diretamente no seu Word modelo antes de adicionar loops foreach. O mecanismo de modelos preserva a formatação que você definiu em Word. :::