Elenchi nei modelli - Elenchi puntati e numerati
Gli elenchi sono strutture fondamentali per organizzare e presentare le informazioni nei documenti. PDF4meIl motore di template di supporta la generazione di elenchi puntati e numerati, consentendoti di creare documenti ben strutturati e leggibili con contenuti dinamici provenienti dalle tue fonti di dati.
Elenchi puntati
Genera elenchi puntati inserendo cicli foreach all'interno di paragrafi formattati con punti elenco nel tuo Word modello.
Sintassi di base degli elenchi puntati
Crea un paragrafo puntato in Word, quindi aggiungi il ciclo foreach:
<<foreach [bullet in EmployeeNames]>><<[bullet.listFirstName]>> <<[bullet.listLastName]>>
<</foreach>>
Passaggi chiave:
- In Word, crea un elenco puntato (usa la formattazione elenco puntato)
- Aggiungi il ciclo foreach e unisci i campi
- Il ciclo ripeterà il punto elenco per ogni elemento
Esempio: Elenco dei nomi dei dipendenti
Progettazione del modello:
Employee Directory:
• <<foreach [bullet in EmployeeNames]>><<[bullet.listFirstName]>> <<[bullet.listLastName]>>
<</foreach>>
Fonte dei dati:
{
"companyName": "PDF4me",
"EmployeeNames": [
{
"listFirstName": "Thomas",
"listLastName": "Baskin"
},
{
"listFirstName": "Jacob",
"listLastName": "Gregory"
},
{
"listFirstName": "John",
"listLastName": "Doe"
}
]
}
Output generato:
Employee Directory:
• Thomas Baskin
• Jacob Gregory
• John Doe
Elenchi numerati
Genera elenchi numerati utilizzando lo stesso approccio foreach, ma con formattazione di paragrafo numerato in Word.
Sintassi dell'elenco numerato
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.
Esempio: Elenco delle attività
Modello:
Project Tasks:
1. <<foreach [task in tasks]>><<[task.name]>> - <<[task.status]>>
<</foreach>>
Dati:
{
"tasks": [
{ "name": "Design mockups", "status": "Complete" },
{ "name": "Develop features", "status": "In Progress" },
{ "name": "Testing phase", "status": "Pending" }
]
}
Produzione:
Project Tasks:
1. Design mockups - Complete
2. Develop features - In Progress
3. Testing phase - Pending
Liste multilivello
Crea strutture di liste gerarchiche con relazioni padre-figlio utilizzando cicli foreach annidati.
Esempio di gerarchia a due livelli
Progettazione del modello:
<<foreach [manager in employees]>>Manager: <<[manager.listFirstName]>> <<[manager.listLastName]>>
<<foreach [associate in manager.associates]>>Associate: <<[associate.name]>>
<</foreach>><</foreach>>
Importante: Gli elementi dell'elenco di secondo livello devono essere rientrati nel tuo Word modello per creare una formattazione gerarchica corretta.
Esempio: Struttura organizzativa
Struttura dei dati:
{
"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" }
]
}
]
}
Output generato:
• Manager: Christopher Nolan
○ Associate: Will Smith
○ Associate: Barry Allen
○ Associate: Oliver Queen
• Manager: Sarah Parker
• Manager: Justin Langer
○ Associate: Brad Pitt
○ Associate: John Smith
Gestione delle sottoliste vuote
Utilizza controlli condizionali per gestire i casi in cui le sottoliste potrebbero essere vuote.
Sottolista condizionale
Modello:
<<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>>
Elementi di elenco formattati
Applica la formattazione al contenuto degli elementi dell'elenco per una presentazione migliore.
Esempio: nomi e date formattati
Modello:
• <<foreach [employee in employees]>><<[employee.name]:caps>> - Joined: <<[employee.joinDate]:"MMMM yyyy"]>>
<</foreach>>
Dati:
{
"employees": [
{ "name": "john smith", "joinDate": "2020/03/15" },
{ "name": "jane doe", "joinDate": "2021/07/22" }
]
}
Produzione:
• John Smith - Joined: March 2020
• Jane Doe - Joined: July 2021
Liste ordinate
Genera elenchi in un ordine specifico utilizzando metodi di enumerazione.
Elenco ordinato alfabeticamente
Modello:
• <<foreach [person in people.OrderBy(p => p.lastName)]>><<[person.lastName]>>, <<[person.firstName]>>
<</foreach>>
Ordinato per proprietà multiple
Modello:
• <<foreach [emp in employees.OrderBy(e => e.department).ThenBy(e => e.name)]>><<[emp.name]>> - <<[emp.department]>>
<</foreach>>
Elenchi filtrati
Mostra solo gli elementi che soddisfano specifici criteri.
Filtro condizionale
Modello:
Active Employees:
• <<foreach [emp in employees.Where(e => e.status == "Active")]>><<[emp.name]>>
<</foreach>>
Filtro in base all'età
Modello:
Senior Team Members:
• <<foreach [person in team.Where(p => p.age > 50)]>><<[person.name]>> (Age: <<[person.age]>>)
<</foreach>>
Tipi di liste miste
Combina diversi stili di elenco all'interno dello stesso documento.
Esempio: Panoramica del progetto
Modello:
Project Phases (Numbered):
1. <<foreach [phase in phases]>><<[phase.name]>>
<</foreach>>
Team Members (Bulleted):
• <<foreach [member in team]>><<[member.name]>> - <<[member.role]>>
<</foreach>>
Esempi complessi multilivello
Gerarchia a tre livelli
Modello:
<<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>>
Questo crea:
- Livello 1: Dipartimento (punto elenco 1)
- Livello 2: Squadra (stile a proiettile 2)
- Livello 3: Membro (punto elenco 3)
- Livello 2: Squadra (stile a proiettile 2)
Progettazione di elenchi in Word Modello
Impostazione della formattazione dell'elenco
- Creare la struttura dell'elenco - Utilizzo Wordstrumenti di formattazione degli elenchi integrati
- Scegli lo stile a proiettile - Selezionare lo stile di elenco puntato o numerato appropriato
- Imposta rientro - Configura i livelli di rientro per gli elenchi multilivello
- Aggiungi campi di unione - Inserire cicli foreach e unire la sintassi dei campi
- Mantieni la formattazione - Assicurarsi che la formattazione dell'elenco venga applicata al testo del modello
Livelli di indentazione
Per elenchi multilivello:
- Livello 1: Nessuna rientranza o rientranza di primo livello
- Livello 2: Un aumento di una tabulazione o di un rientro
- Livello 3: Due linguette o rientro di secondo livello
Word Gestisce automaticamente lo stile di elenchi puntati/numerati in base al livello di rientro.
Applicazioni pratiche
Caso d'uso 1: Ordine del giorno della riunione
Modello:
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 d'uso 2: Caratteristiche del prodotto
Modello:
<<[productName]>> Features:
• <<foreach [feature in features]>><<[feature.name]>> - <<[feature.description]>>
<</foreach>>
Technical Specifications:
1. <<foreach [spec in specifications]>><<[spec.parameter]>>: <<[spec.value]>>
<</foreach>>
Caso d'uso 3: Voci della fattura
Modello:
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)]>>
migliori pratiche
Progettazione della lista
- Formattazione coerente - Utilizzare lo stesso stile di elenco per tipi di contenuto simili
- Profondità adeguata - Limitare l'annidamento a 3-4 livelli per una migliore leggibilità.
- Raggruppamento logico - Raggruppa gli elementi correlati
- Gerarchia chiara - Utilizzare diversi stili di proiettile per i diversi livelli
Struttura dei dati
- Collezioni pulite - Assicurarsi che le raccolte contengano dati validi e completi
- Proprietà coerenti - Utilizzare nomi di proprietà coerenti tra gli elementi
- Gestire i valori nulli - Verifica la presenza di collezioni vuote con
Any() - Ordinare in modo appropriato - Preordina i dati o usa OrderBy nei modelli
Prestazione
- Limita la dimensione dell'elenco - Valutare l'utilizzo della paginazione per elenchi molto lunghi.
- Filtrare in modo efficiente - Applicare i filtri alla fonte dei dati quando possibile
- Evitare annidamenti complessi - L'annidamento profondo può influire sulla velocità di elaborazione
:::suggerimento Formattazione elenco Applica la formattazione elenco (punti elenco, numeri, rientro) direttamente nel tuo Word modello prima di aggiungere cicli foreach. Il motore di modelli conserva la formattazione impostata in Word.
:::