メインコンテンツへスキップ

テンプレート内のリスト - 箇条書きと番号付きリスト

リストは、文書内で情報を整理・提示するための基本的な構造である。 PDF4meのテンプレートエンジンは、箇条書きと番号付きリストの両方の生成をサポートしており、データソースからの動的なコンテンツを使用して、構造が整然とした読みやすいドキュメントを作成できます。


箇条書き​

箇条書き形式の段落内に foreach ループを配置して箇条書きリストを生成します。 Word テンプレート。

箇条書きの基本構文​

箇条書きの段落を作成する Word次に、foreachループを追加します。

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

主な手順:

  1. で Word箇条書きを作成する(箇条書き形式を使用する)
  2. foreachループを追加し、フィールドをマージします。
  3. ループは各項目に対して箇条書きを繰り返します

例:従業員名簿​

テンプレートデザイン:

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

データソース:

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

生成された出力:

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

番号付きリスト​

同じ foreach アプローチを使用して番号付きリストを生成しますが、段落の番号付けフォーマットは Word。

番号付きリストの構文​

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.

例:タスクリスト​

テンプレート:

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

データ:

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

出力:

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

複数階層リスト​

ネストされた foreach ループを使用して、親子関係を持つ階層的なリスト構造を作成します。

2階層構造の例​

テンプレートデザイン:

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

重要: 2 階層目のリスト項目は、 Word 適切な階層構造を作成するためのテンプレート。


例:組織構造​

データ構造:

{
"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" }
]
}
]
}

生成された出力:

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

空のサブリストの処理​

サブリストが空になる可能性がある場合に対処するには、条件付きチェックを使用してください。

条件付きサブリスト​

テンプレート:

<<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>>

書式設定されたリスト項目​

リスト項目の内容に書式設定を適用して、見栄えを向上させます。

例:書式設定された名前と日付​

テンプレート:

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

データ:

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

出力:

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

ソート済みリスト​

列挙法を用いて、特定の順序でリストを生成する。

アルファベット順に並べられたリスト​

テンプレート:

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

複数のプロパティでソート​

テンプレート:

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

フィルターされたリスト​

特定の条件を満たすアイテムのみを表示します。

条件付きフィルタリング​

テンプレート:

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

年齢に基づくフィルタリング​

テンプレート:

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

混合リストタイプ​

同じ文書内で異なるリストスタイルを組み合わせる。

例:プロジェクト概要​

テンプレート:

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

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

複雑な多層構造の例​

3段階階層構造​

テンプレート:

<<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>>

これにより以下が生成されます。

  • レベル1:部門(箇条書き1)
    • レベル2:チーム(箇条書きスタイル2)
      • レベル3:メンバー(箇条書きスタイル3)

リストデザイン Word テンプレート​

リストの書式設定​

  1. リスト構造を作成する - 使用 Word組み込みのリスト書式設定ツール
  2. 箇条書きのスタイルを選択してください - 適切な箇条書きまたは番号付けスタイルを選択してください
  3. インデントを設定 - 複数階層リストのインデントレベルを設定する
  4. 差し込みフィールドを追加する - foreachループとマージフィールド構文を挿入
  5. 書式を維持する - テンプレートテキストにリストの書式設定が適用されていることを確認してください

圧痕レベル​

複数階層リストの場合:

  • レベル1: 凹みなし、または第1レベルの凹み
  • レベル2: タブまたはインデントを1つ増やす
  • レベル3: 2つのタブまたは2レベル目のインデント

Word インデントレベルに基づいて、箇条書き記号や番号記号のスタイルを自動的に処理します。


実用的応用​

ユースケース1:会議の議題​

テンプレート:

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>>

ユースケース2:製品機能​

テンプレート:

<<[productName]>> Features:

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

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

ユースケース3:請求書明細​

テンプレート:

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)]>>

ベストプラクティス​

リストデザイン​

  1. 一貫した書式設定 - 類似のコンテンツタイプには同じリストスタイルを使用する
  2. 適切な深さ 読みやすさを考慮して、ネストレベルは3~4レベルに制限する。
  3. 論理的なグループ化 - 関連するアイテムをまとめてグループ化する
  4. 明確な階層構造 - レベルごとに異なる箇条書きスタイルを使用する

データ構造​

  1. クリーンコレクション - コレクションに有効かつ完全なデータが含まれていることを確認する
  2. 一貫性のある特性 - アイテム間で一貫したプロパティ名を使用する
  3. null値を処理する - 空のコレクションをチェックします Any()
  4. 適切に並べ替える - データを事前に並べ替えるか、テンプレートで OrderBy を使用する

パフォーマンス​

  1. リストのサイズを制限する 非常に長いリストの場合は、ページネーションを検討してください。
  2. 効率的にろ過する - 可能な場合はデータソースでフィルタを適用する
  3. 複雑なネスト構造は避ける - 深いネスト構造は処理速度に影響を与える可能性があります

:::ヒント リストの書式設定 リストの書式設定(箇条書き、番号、インデント)をリストに直接適用します Word foreach ループを追加する前にテンプレートを使用します。テンプレート エンジンは、 Word。 :::