Tip

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

「テンプレート印刷」機能を使って《供給・購入契約書》を生成する例

サプライチェーンや貿易の場面では、標準化された「供給・購入契約書」を迅速に作成し、データソースにある買い手、売り手、商品詳細などの情報に基づいて内容を動的に埋め込む必要が頻繁にあります。ここでは、簡略化した「契約」のユースケースを例に、「テンプレート印刷」機能の設定方法と使い方をご紹介します。この機能を使うと、データ情報を契約テンプレートのプレースホルダーにマッピングし、最終的な契約書を自動で生成できます。


1. 背景とデータ構造の概要

この例では、主に以下のコレクションが存在します(関連しない他のフィールドは省略しています)。

  • parties:甲乙両当事者の組織または個人情報(名称、住所、担当者、電話番号など)を保存します。
  • contracts:具体的な契約記録(契約番号、買い手/売り手の外部キー、署名者情報、開始/終了日、銀行口座など)を保存します。
  • contract_line_items:当該契約に含まれる複数の項目(商品名、仕様、数量、単価、納期など)を保存します。

template_print-2025-11-01-16-34-04

現在のシステムでは単一レコードの印刷のみをサポートしているため、「契約詳細」ページで「印刷」をクリックすると、システムは対応する contracts レコードと、関連する parties などの情報を自動的に取得し、WordまたはPDFドキュメントに埋め込みます。

2. 準備作業

2.1 プラグインの準備

「テンプレート印刷」は商用プラグインであり、印刷操作を行うには購入してアクティベートする必要がありますのでご注意ください。

template_print-2025-11-01-17-31-51

プラグインの有効化を確認する:

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

template_print-2025-11-01-17-32-09

template_print-2025-11-01-17-32-30

2.2 コレクションの作成

上記で設計した主体コレクション、契約コレクション、商品項目コレクションを作成します(主要なフィールドのみで構いません)。

契約コレクション(Contracts)

フィールドカテゴリフィールド表示名Field Nameフィールドインターフェース
主キー & 外部キーフィールド
IDid整数
買い手IDbuyer_id整数
売り手IDseller_id整数
関連フィールド
契約項目contract_items1対多
買い手(甲)buyer多対1
売り手(乙)seller多対1
一般フィールド
契約番号contract_no1行テキスト
納期開始日start_date日時(タイムゾーン付き)
納期終了日end_date日時(タイムゾーン付き)
手付金比率(%)deposit_ratioパーセント
納品後支払い日数payment_days_after整数
銀行口座名(受取人)bank_account_name1行テキスト
銀行名bank_name1行テキスト
銀行口座番号(受取人)bank_account_number1行テキスト
合計金額total_amount数値
通貨コードcurrency_codes単一選択
残高比率(%)balance_ratioパーセント
残高支払い日数(納品後)balance_days_after整数
納品場所delivery_place長文テキスト
甲署名者名party_a_signatory_name1行テキスト
甲署名者役職party_a_signatory_title1行テキスト
乙署名者名party_b_signatory_name1行テキスト
乙署名者役職party_b_signatory_title1行テキスト
システムフィールド
作成日時createdAt作成日時
作成者createdBy作成者
最終更新日時updatedAt最終更新日時
最終更新者updatedBy最終更新者

主体コレクション(Parties)

フィールドカテゴリフィールド表示名Field Nameフィールドインターフェース
主キー & 外部キーフィールド
IDid整数
一般フィールド
当事者名party_name1行テキスト
住所address1行テキスト
担当者contact_person1行テキスト
連絡先電話番号contact_phone電話番号
役職position1行テキスト
メールアドレスemailメール
ウェブサイトwebsiteURL
システムフィールド
作成日時createdAt作成日時
作成者createdBy作成者
最終更新日時updatedAt最終更新日時
最終更新者updatedBy最終更新者

商品項目コレクション(Contract Line Items)

フィールドカテゴリフィールド表示名Field Nameフィールドインターフェース
主キー & 外部キーフィールド
IDid整数
契約IDcontract_id整数
関連フィールド
契約contract多対1
一般フィールド
商品名product_name1行テキスト
仕様/型番spec1行テキスト
数量quantity整数
単価unit_price数値
合計金額total_amount数値
納期delivery_date日時(タイムゾーン付き)
備考remark長文テキスト
システムフィールド
作成日時createdAt作成日時
作成者createdBy作成者
最終更新日時updatedAt最終更新日時
最終更新者updatedBy最終更新者

2.3 インターフェース設定

サンプルデータを入力する:

template_print-2025-11-01-17-32-59

template_print-2025-11-01-17-33-11

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

template_print-2025-11-01-17-33-21

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

template_print-2025-11-01-17-33-33

2.4 テンプレート印刷プラグインの設定

template_print-2025-11-01-17-33-45

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

template_print-2025-11-01-17-33-57

template_print-2025-11-01-17-34-08

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

template_print-2025-11-01-17-35-19

2.5 契約ファイルの準備

Word契約テンプレートファイル

事前に契約書のひな形(.docxファイル)を用意してください。例:SUPPLY AND PURCHASE CONTRACT.docx

この例では、簡略化された《供給・購入契約書》を提供しており、以下のサンプルプレースホルダーが含まれています。

  • {d.contract_no}:契約番号
  • {d.buyer.party_name}{d.seller.party_name}:買い手、売り手の名称
  • {d.total_amount}:契約合計金額
  • その他、「担当者」「住所」「電話番号」などのプレースホルダー

次に、作成したコレクションのフィールドをコピーし、Wordに貼り付けてください。


3. テンプレート変数チュートリアル

3.1 基本変数、関連オブジェクトプロパティの入力

基本フィールドの入力:

例えば、一番上の契約番号や、契約を締結する主体オブジェクトなどです。「コピー」をクリックし、契約書の対応する空白箇所に直接貼り付けるだけで完了です。

template_print-2025-11-01-17-31-11

template_print-2025-11-01-17-30-51

3.2 データフォーマット

日付のフォーマット

テンプレートでは、特に日付フィールドのフォーマットが必要になることがよくあります。直接コピーした日付の形式は通常長く(例:Wed Jan 01 2025 00:00:00 GMT)、希望するスタイルで表示するにはフォーマットが必要です。

日付フィールドには、formatD() 関数を使用して出力形式を指定できます。

{フィールド名:formatD(フォーマットスタイル)}

例:

例えば、コピーした元のフィールドが {d.created_at} で、日付を 2025-01-01 の形式にフォーマットしたい場合、このフィールドを次のように変更します。

{d.created_at:formatD(YYYY-MM-DD)}  // 出力:2025-01-01

一般的な日付フォーマットスタイル:

  • YYYY - 年(4桁)
  • MM - 月(2桁)
  • DD - 日(2桁)
  • HH - 時(24時間制)
  • mm - 分
  • ss - 秒

例2:

{d.created_at:formatD(YYYY-MM-DD HH:mm:ss)}  // 出力:2025-01-01 14:30:00

金額のフォーマット

契約書に {d.total_amount} のような金額フィールドがあるとします。formatN() 関数を使用して数値をフォーマットし、小数点以下の桁数と桁区切り文字を指定できます。

構文:

{フィールド名:formatN(小数点以下の桁数, 桁区切り文字)}
  • 小数点以下の桁数:小数点以下に何桁残すかを指定できます。例えば、2 は小数点以下2桁を意味します。
  • 桁区切り文字:桁区切り文字を使用するかどうかを指定します。通常は true または false です。

例1:桁区切り文字と小数点以下2桁で金額をフォーマットする

{d.amount:formatN(2, true)}  // 出力:1,234.56

これは d.amount を小数点以下2桁にフォーマットし、桁区切り文字を追加します。

例2:小数点以下のない整数として金額をフォーマットする

{d.amount:formatN(0, true)}  // 出力:1,235

これは d.amount を整数にフォーマットし、桁区切り文字を追加します。

例3:桁区切り文字なしで小数点以下2桁の金額をフォーマットする

{d.amount:formatN(2, false)}  // 出力:1234.56

ここでは桁区切り文字を無効にし、小数点以下2桁のみを保持します。

その他の金額フォーマットの要件:

  • 通貨記号:Carbone自体は通貨記号のフォーマット機能を直接提供していませんが、データまたはテンプレートに通貨記号を直接追加することで実現できます。例:
    {d.amount:formatN(2, true)} 円  // 出力:1,234.56 円

文字列のフォーマット

文字列フィールドの場合、:upperCase を使用して、大文字/小文字変換などのテキスト形式を指定できます。

構文:

{フィールド名:upperCase:その他のコマンド}

一般的な変換方法:

  • upperCase - すべて大文字に変換
  • lowerCase - すべて小文字に変換
  • upperCase:ucFirst - 先頭の文字を大文字に変換

例:

{d.party_a_signatory_name:upperCase}  // 出力:JOHN DOE

3.3 ループ印刷

子オブジェクトリスト(商品詳細など)を印刷する方法

複数の子項目(商品詳細など)を含むテーブルを印刷する必要がある場合、通常はループ印刷を使用します。これにより、システムはリスト内の各項目に基づいて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:テンプレートレンダリング時の自動ループ印刷

システムがこのテンプレートを処理する際、以下のロジックに従って動作します。

  1. 1行目は、テンプレートで設定したフィールドに従って入力されます。
  2. その後、システムは自動的に2行目を削除し、d.contract_items からデータの抽出を開始し、すべての商品詳細が印刷されるまでテーブルの形式で各行をループして入力します。

各行の i はインクリメントされ、各行に異なる商品情報が表示されるようにします。


4. 契約テンプレートのアップロードと設定

4.1 テンプレートのアップロード

  1. 「テンプレートを追加」ボタンをクリックし、「供給・購入契約書テンプレート」のようなテンプレート名を入力します。
  2. 準備した Word契約ファイル(.docx) をアップロードします。これにはすべてのプレースホルダーが含まれています。

template_print-2025-11-01-17-36-06

  1. 完了後、システムはこのテンプレートをオプションのテンプレートリストに表示し、後で使用できるようにします。
  2. 「使用」をクリックすると、このテンプレートがアクティベートされます。

template_print-2025-11-01-17-36-13

この時点で現在のポップアップを終了し、「テンプレートをダウンロード」をクリックすると、生成された完全なテンプレートを取得できます。

ヒント:

  • テンプレートが .doc またはその他の形式を使用している場合、プラグインのサポート状況に応じて .docx に変換する必要がある場合があります。
  • Wordファイルでは、レンダリングエラーを避けるため、プレースホルダーを複数の段落やテキストボックスに分割しないように注意してください。

「テンプレート印刷」機能をご活用ください!この機能を使えば、契約管理における繰り返し作業を大幅に削減し、手作業によるコピー&ペーストのエラーを防ぎ、契約書の標準化と自動出力を実現できます。