ドキュメントのエクスポート用カスタムテンプレート

Requirements & Systems Portal の Document Export ウィザードは、要件および V&V アクティビティから編集可能な Microsoft Word *.docx ファイルをすばやく作成するための便利な機能です。定義済みテンプレートを使用することも、独自のテンプレートをアップロードすることもできます。このウィザードは Python-Docx-Template ライブラリを基盤としており、さらにその内部で Jinja テンプレートエンジンを利用しています。この組み合わせにより、カスタムテンプレートを作成できます。

Python-Docx-Template ライブラリ

Python-Docx-Template ライブラリは、Python-Docx ライブラリの機能を拡張する強力なツールです。Jinja テンプレートエンジンを組み込んでおり、Word ファイル内で動的なコンテンツ生成を可能にします。つまり、変数、ループ、条件分岐を使用して、ドキュメントにデータを動的に埋め込むことができます。要するに、Word ドキュメントに強力な自動化機能を与えるようなものです。

リッチテキストのフィールドでは、エクスポートテンプレート内で r プレフィックスを使用する必要がある点に注意してください。たとえば、要件テキストフィールドはテンプレート内で r requirement.text として含める必要があります。

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

Requirements & Systems Portal インスタンスで利用可能なテンプレートは、Export templates ページ(  » Settings » Export templates)に一覧表示されます。

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

    • 要件エクスポートテンプレートの詳細については、 Document Export ページを参照してください。

    • V&V アクティビティエクスポートテンプレートの詳細については、 Document Export ページを参照してください。

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

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

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

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

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

Requirements & Systems Portal インスタンスでは、デフォルトで 3 つの要件エクスポートテンプレートを利用できます。それぞれ前のものより段階的に複雑になっているため、テンプレート作成スキルを高めたい場合は順番に取り組むのがおすすめです。以下がその一覧です。

  • spec_doc.docx – これはシンプルで標準的なテンプレートで、要件の Document View と同一の出力を生成することを目的としています。初心者に最適で、基本的なループと変数を扱っています。

  • 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”) %}{{r custom_field.value }}{% endfor %}

 Name of Custom Column のテキストは、列ヘッダーに表示されている実際の列名に必ず置き換えてください。

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

{%- if requirement.custom_fields -%}
     {%- set additional_info_values = [] -%}
     {%- set category_values = [] -%}
     {%- set additional_info_custom_fields = requirement.custom_fields | selectattr('field', 'equalto', 'Additional Information') -%}
     {% 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 で翻訳
問題が見つかった場合、文字/画像を選択し、Ctrl + Enter キーを押してフィードバックをお送りください。
機能の提供状況

ご利用可能な機能は、お使いのAltiumソリューション(Altium DevelopAltium Agile TeamsAltium Agile Enterprise、または有効な契約期間中のAltium Designer)によって異なります。

実際にお使いのソフトウェアに文書化されている機能が表示されない場合は、詳細についてAltium Sales までお問い合わせください。

Content