このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
サプライチェーンや貿易の場面では、標準化された「供給・購入契約書」を迅速に作成し、データソースにある買い手、売り手、商品詳細などの情報に基づいて内容を動的に埋め込む必要が頻繁にあります。ここでは、簡略化した「契約」のユースケースを例に、「テンプレート印刷」機能の設定方法と使い方をご紹介します。この機能を使うと、データ情報を契約テンプレートのプレースホルダーにマッピングし、最終的な契約書を自動で生成できます。
この例では、主に以下のコレクションが存在します(関連しない他のフィールドは省略しています)。

現在のシステムでは単一レコードの印刷のみをサポートしているため、「契約詳細」ページで「印刷」をクリックすると、システムは対応する contracts レコードと、関連する parties などの情報を自動的に取得し、WordまたはPDFドキュメントに埋め込みます。
「テンプレート印刷」は商用プラグインであり、印刷操作を行うには購入してアクティベートする必要がありますのでご注意ください。

プラグインの有効化を確認する:
任意のページで詳細ブロック(例:users)を作成し、操作設定に対応するテンプレート設定オプションがあるか確認してください。


上記で設計した主体コレクション、契約コレクション、商品項目コレクションを作成します(主要なフィールドのみで構いません)。
| フィールドカテゴリ | フィールド表示名 | Field Name | フィールドインターフェース |
|---|---|---|---|
| 主キー & 外部キーフィールド | |||
| ID | id | 整数 | |
| 買い手ID | buyer_id | 整数 | |
| 売り手ID | seller_id | 整数 | |
| 関連フィールド | |||
| 契約項目 | contract_items | 1対多 | |
| 買い手(甲) | buyer | 多対1 | |
| 売り手(乙) | seller | 多対1 | |
| 一般フィールド | |||
| 契約番号 | contract_no | 1行テキスト | |
| 納期開始日 | start_date | 日時(タイムゾーン付き) | |
| 納期終了日 | end_date | 日時(タイムゾーン付き) | |
| 手付金比率(%) | deposit_ratio | パーセント | |
| 納品後支払い日数 | payment_days_after | 整数 | |
| 銀行口座名(受取人) | bank_account_name | 1行テキスト | |
| 銀行名 | bank_name | 1行テキスト | |
| 銀行口座番号(受取人) | bank_account_number | 1行テキスト | |
| 合計金額 | total_amount | 数値 | |
| 通貨コード | currency_codes | 単一選択 | |
| 残高比率(%) | balance_ratio | パーセント | |
| 残高支払い日数(納品後) | balance_days_after | 整数 | |
| 納品場所 | delivery_place | 長文テキスト | |
| 甲署名者名 | party_a_signatory_name | 1行テキスト | |
| 甲署名者役職 | party_a_signatory_title | 1行テキスト | |
| 乙署名者名 | party_b_signatory_name | 1行テキスト | |
| 乙署名者役職 | party_b_signatory_title | 1行テキスト | |
| システムフィールド | |||
| 作成日時 | createdAt | 作成日時 | |
| 作成者 | createdBy | 作成者 | |
| 最終更新日時 | updatedAt | 最終更新日時 | |
| 最終更新者 | updatedBy | 最終更新者 |
| フィールドカテゴリ | フィールド表示名 | Field Name | フィールドインターフェース |
|---|---|---|---|
| 主キー & 外部キーフィールド | |||
| ID | id | 整数 | |
| 一般フィールド | |||
| 当事者名 | party_name | 1行テキスト | |
| 住所 | address | 1行テキスト | |
| 担当者 | contact_person | 1行テキスト | |
| 連絡先電話番号 | contact_phone | 電話番号 | |
| 役職 | position | 1行テキスト | |
| メールアドレス | メール | ||
| ウェブサイト | website | URL | |
| システムフィールド | |||
| 作成日時 | createdAt | 作成日時 | |
| 作成者 | createdBy | 作成者 | |
| 最終更新日時 | updatedAt | 最終更新日時 | |
| 最終更新者 | updatedBy | 最終更新者 |
| フィールドカテゴリ | フィールド表示名 | Field Name | フィールドインターフェース |
|---|---|---|---|
| 主キー & 外部キーフィールド | |||
| ID | id | 整数 | |
| 契約ID | contract_id | 整数 | |
| 関連フィールド | |||
| 契約 | contract | 多対1 | |
| 一般フィールド | |||
| 商品名 | product_name | 1行テキスト | |
| 仕様/型番 | spec | 1行テキスト | |
| 数量 | quantity | 整数 | |
| 単価 | unit_price | 数値 | |
| 合計金額 | total_amount | 数値 | |
| 納期 | delivery_date | 日時(タイムゾーン付き) | |
| 備考 | remark | 長文テキスト | |
| システムフィールド | |||
| 作成日時 | createdAt | 作成日時 | |
| 作成者 | createdBy | 作成者 | |
| 最終更新日時 | updatedAt | 最終更新日時 | |
| 最終更新者 | updatedBy | 最終更新者 |
サンプルデータを入力する:


合計金額と後払い項目を自動計算する連携ルールを以下のように設定します:

ビューブロックを作成し、データを確認したら、「テンプレート印刷」操作を有効にします:


「供給・購入契約書」のようなテンプレート設定を新規追加します:


次に、フィールドリストのタブページに移動すると、現在のオブジェクトのすべてのフィールドが表示されます。後ほど「コピー」をクリックした後、テンプレートへの入力を開始できます。

Word契約テンプレートファイル
事前に契約書のひな形(.docxファイル)を用意してください。例:SUPPLY AND PURCHASE CONTRACT.docx
この例では、簡略化された《供給・購入契約書》を提供しており、以下のサンプルプレースホルダーが含まれています。
{d.contract_no}:契約番号{d.buyer.party_name}、{d.seller.party_name}:買い手、売り手の名称{d.total_amount}:契約合計金額次に、作成したコレクションのフィールドをコピーし、Wordに貼り付けてください。
基本フィールドの入力:
例えば、一番上の契約番号や、契約を締結する主体オブジェクトなどです。「コピー」をクリックし、契約書の対応する空白箇所に直接貼り付けるだけで完了です。


テンプレートでは、特に日付フィールドのフォーマットが必要になることがよくあります。直接コピーした日付の形式は通常長く(例:Wed Jan 01 2025 00:00:00 GMT)、希望するスタイルで表示するにはフォーマットが必要です。
日付フィールドには、formatD() 関数を使用して出力形式を指定できます。
例:
例えば、コピーした元のフィールドが {d.created_at} で、日付を 2025-01-01 の形式にフォーマットしたい場合、このフィールドを次のように変更します。
一般的な日付フォーマットスタイル:
YYYY - 年(4桁)MM - 月(2桁)DD - 日(2桁)HH - 時(24時間制)mm - 分ss - 秒例2:
契約書に {d.total_amount} のような金額フィールドがあるとします。formatN() 関数を使用して数値をフォーマットし、小数点以下の桁数と桁区切り文字を指定できます。
構文:
2 は小数点以下2桁を意味します。true または false です。例1:桁区切り文字と小数点以下2桁で金額をフォーマットする
これは d.amount を小数点以下2桁にフォーマットし、桁区切り文字を追加します。
例2:小数点以下のない整数として金額をフォーマットする
これは d.amount を整数にフォーマットし、桁区切り文字を追加します。
例3:桁区切り文字なしで小数点以下2桁の金額をフォーマットする
ここでは桁区切り文字を無効にし、小数点以下2桁のみを保持します。
その他の金額フォーマットの要件:
文字列フィールドの場合、:upperCase を使用して、大文字/小文字変換などのテキスト形式を指定できます。
構文:
一般的な変換方法:
upperCase - すべて大文字に変換lowerCase - すべて小文字に変換upperCase:ucFirst - 先頭の文字を大文字に変換例:
複数の子項目(商品詳細など)を含むテーブルを印刷する必要がある場合、通常はループ印刷を使用します。これにより、システムはリスト内の各項目に基づいて1行の内容を生成し、すべての項目が処理されるまで繰り返します。
例えば、複数の商品オブジェクトを含む商品リスト(contract_itemsなど)があるとします。各商品オブジェクトには、商品名、仕様、数量、単価、合計金額、備考などの複数の属性があります。
ステップ1:テーブルの1行目にフィールドを入力する
まず、テーブルの1行目(ヘッダーではない)に、テンプレート変数を直接コピーして入力します。これらの変数は対応するデータに置き換えられ、出力に表示されます。
例えば、テーブルの1行目は次のようになります。
| 商品名 | 仕様/型番 | 数量 | 単価 | 合計金額 | 備考 |
|---|---|---|---|---|---|
| {d.contract_items[i].product_name} | {d.contract_items[i].spec} | {d.contract_items[i].quantity} | {d.contract_items[i].unit_price} | {d.contract_items[i].total_amount} | {d.contract_items[i].remark} |
ここで、d.contract_items[i] は商品リストのi番目の項目を表し、i は現在の商品の順序を示すインデックスです。
ステップ2:2行目のインデックスを変更する
次に、テーブルの2行目で、フィールドのインデックスを i+1 に変更し、最初の属性のみを入力します。これは、ループ印刷時にリストから次のデータ項目を取得し、次の行に表示する必要があるためです。
例えば、2行目は次のように入力します。
| 商品名 | 仕様/型番 | 数量 | 単価 | 合計金額 | 備考 |
|---|---|---|---|---|---|
| {d.contract_items[i+1].product_name} |
この例では、[i] を [i+1] に変更することで、リスト内の次の商品データを取得できます。
ステップ3:テンプレートレンダリング時の自動ループ印刷
システムがこのテンプレートを処理する際、以下のロジックに従って動作します。
d.contract_items からデータの抽出を開始し、すべての商品詳細が印刷されるまでテーブルの形式で各行をループして入力します。各行の i はインクリメントされ、各行に異なる商品情報が表示されるようにします。


この時点で現在のポップアップを終了し、「テンプレートをダウンロード」をクリックすると、生成された完全なテンプレートを取得できます。
ヒント:
.doc またはその他の形式を使用している場合、プラグインのサポート状況に応じて .docx に変換する必要がある場合があります。「テンプレート印刷」機能をご活用ください!この機能を使えば、契約管理における繰り返し作業を大幅に削減し、手作業によるコピー&ペーストのエラーを防ぎ、契約書の標準化と自動出力を実現できます。