ドキュメント書き出しカスタムテンプレート

要件ポータルのドキュメントエクスポートウィザードは、編集可能な Microsoft Word ファイルを作成するのに便利です。 *.docxファイルを作成できます。定義済みのテンプレートを使用することも、独自のテンプレートをアップロードすることもできます。このウィザードは、Python-Docx-Template ライブラリによって駆動され、Jinja Templating Engine を活用しています。このダイナミックなコンビにより、カスタムテンプレートを作成することができます。

Python-Docx-Template ライブラリ

Python-Docx-Template ライブラリは Python-Docx ライブラリの機能を拡張する強力なツールです。Jinja Templating Engine を組み込み、Word ファイル内で動的なコンテンツ生成を可能にします。つまり、変数、ループ、条件式を使用して、文書にその場でデータを入力することができます。本質的には、Word文書にエスプレッソを注入するようなものです。

リッチテキストであるフィールドには r接頭辞はエクスポートテンプレートで使用する必要があります。たとえば、要件テキストフィールドは、テンプレートに r requirement.text.

エクスポート テンプレートの管理

要件ポータル インスタンスで利用可能なテンプレートは Export templatesページ ( » Settings » Export templates).

  • デフォルトでは、要件ドキュメント エクスポート用に 3 つ、V&V アクティビティ ドキュメント エクスポート用に 3 つの合計 6 つのテンプレートが用意されています。

  • 新しいユーザー定義テンプレートを追加するには、ページの右上にある ボタンをクリックします。表示されるウィンドウで Add template表示されるウィンドウで、新しいテンプレートを以下に適用するかどうかを選択します。 Requirementsまたは V&V Activitiesを選択します。 Applicable objectsドロップダウンを使用して、新しいテンプレートを適用する必要があるかどうかを選択します。 Select template領域でテンプレート・ファイルを選択する。

    ダイアログの ボタンをクリックして、テンプレートを追加します。テンプレートは Export templatesページのリストに表示され、ドキュメントのエクスポートで使用できます。

  • テンプレートのファイルはダウンロードできます。これを行うには、必要なテンプレートの欄の ボタンをクリックし、必要なテンプレートを選択します。 Nameボタンをクリックし Downloadコマンドを選択します。ブラウザの設定により、あらかじめ定義された場所に自動的にダウンロードされるか、ハードドライブ上の保存場所を尋ねられます。

  • ユーザー定義のテンプレートは、新しいテンプレート・ファイルで上書きすることができます。これを行うには、必要なテンプレートの欄のNameボタンをクリックし、表示されるメニューから Overwrite Templateコマンドを選択します。メニューからコマンドを選択します。 Overwrite templateウィンドウを使用して、テンプレートの適用を定義し、新しいファイルを選択します。オプションを有効にして I confirm I want to overwriteオプションを有効にし、 ボタンをクリックして処理を完了します。

付録 - 要件エクスポート テンプレートのデータ オブジェクト構造

要件ポータルのインスタンスでは、3 つのデフォルト要件エクスポート テンプレートを利用できます。こ れ ら のテ ン プ レー ト を利用す る には、 順番に取 り 組む こ と が賢明です。以下はその一覧です:

  • spec_doc.docx- このテンプレートは、要件ドキュメント ビューと同じアウトプットを生成することを目的とした、ありふれたテンプレートです。初心者に最適で、簡単なループと変数を扱います。

  • spec_table.docx- このテンプレートでは、条件式とフィルタを紹介します。ここからが本番です。これは、スクリプトベースのWordテンプレートのJinjaバージョンで、マージフィールドがあります。

  • req_verification.docx- テンプレートのグランドマスターです。ネストされたループや条件式が豊富で、テーブルまで組み込まれています。これをマスターすれば、基本的に文書テンプレートのジェダイだ。

あなたのドキュメントのニーズに合うように、自由にセクションを追加したり、削除したり、修正したりしてください。上記の順序でデフォルトのテンプレート・ファイルを一通り見た後、自分のレポートに含めることができるものの限界を試す冒険心が湧いてくるかもしれません。

以下は、 要件エ ク ス ポー ト テ キ ス ト テ ン プ レー ト が情報を取得す る オブジ ェ ク ト の基本構造です。

フィールドの並べ替え

Jinjaテンプレート・ドキュメントの Sort関数を使用して、要件を並べ替えることができます。たとえば |sort(attribute='identifier')ここで、要件は識別子列で英数字順にソートされます。

{% for requirement in requirements|selectattr("specification_id", "equalto", specification.id)|selectattr("group_id", "none") |sort(attribute='identifier') -%}

カスタム列

現在のドキュメントエクスポーターでは、カスタム列の値を簡単にエクスポートできます。単純なテキストベースのカスタムカラムの場合、以下のような一般的な構造を使用できます:

{% for custom_field in requirement.custom_fields|selectattr(“field”, “equalto”, “Name of Custom Column”) %}{% for value in custom_field.value %}{{ value }}{% endfor %}{% endfor %}

必ず Name of Custom Columnテキストは必ずカラムヘッダに記載されている実際のカラム名に置き換えてください。

カスタムカラムがテキストではなく、複数選択可能なオプションである場合、ユーザーは次のコードを使用し、ユースケースに合わせて更新することができます。

{%- if requirement.custom_fields -%} とします。
     {追加_info_values = [] を設定します。}
     {category_values = [] を設定します。}
     {%- set additional_info_custom_fields = requirement.custom_fields | selectattr('field', 'equalto', '追加情報') -%} {%- set additional_info_custom_fields = requirement.custom_fields | selectattr('field', 'equalto', '追加情報') -%}
     {% for custom_field in additional_info_custom_fields -%}
      {%- set additional_info_values = additional_info_values + custom_field.value -%}.
     {% endfor -%}
     {%- set category_custom_fields = requirement.custom_fields | selectattr('field', 'equalto', 'Category') -%}
     {% for custom_field in category_custom_fields -%}
           {%- set category_values = category_values + custom_field.value -%}.
     {% endfor -%}
{%- set additional_info_string = additional_info_values | join(';') -%}
{%- set category_string = category_info_values | join(';') -%}
{%- endif -%}

付録 - V&Vアクティビティ・エクスポート・テンプレートのデータ・オブジェクト構造

以下は、V&V アクティビティ・エクスポート・テンプレートが情報を取得するオブジェクトの基本構造です。

AI-LocalizedAI-localized
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
機能の可用性

利用できる機能は、所有する Altium ソリューション (Altium DevelopAltium Agile のエディション (Agile Teams、または Agile Enterprise)、または Altium Designer (有効な期間)) によって異なります。

説明されている機能がお使いのソフトウェアに表示されない場合、Altium の営業担当者にお問い合わせください

Content