カスタム レポートを印刷するための新しい電子申告ソリューションの設計

ノート

コミュニティの関心グループが Yammer から Microsoft Viva Engage に移行されました。 Viva Engageコミュニティに参加し、最新のディスカッションに参加するには、 Finance and Operations Viva Engage Community へのアクセス権フォームに入力し、参加するコミュニティを選択します。

次の手順では、システム管理者、電子レポート開発者、または電子レポート機能コンサルタントロールのユーザーが、ER フレームワークのパラメーターを構成し、特定のビジネス ドメインのデータにアクセスするために新しい ER ソリューションの必要な ER 構成を設計し、Microsoft Office形式でカスタム レポートを生成する方法について説明します。 これらの手順は 、USMF 企業で実行できます。

この例では、 アンケート モジュール用の新しい ER ソリューションを作成します。 この新しい ER ソリューションを使用すると、Microsoft Excel ワークシートをテンプレートとして使用してレポートをデザインできます。 その後、既存の SQL Server Reporting Services (SSRS) レポートを生成するだけでなく、Questionnaire レポートを Excel または PDF 形式で生成できます。 必要に応じて、この新規レポートを後で修正することも可能です。 コーディングは必要ありません。

  1. 既存のレポートを実行するには、アンケート>設計>アンケート レポート に移動してください。

    アンケート モジュールの [アンケート] レポート メニュー項目を選択して既存の SSRS レポートを実行するスクリーンショット。

  2. アンケート レポートのダイアログ ボックスで、選択基準を指定します。 フィルターを適用するとレポートに、アンケート SBCCrsExam のみを表示させることができます。

    [アンケート レポート] ダイアログ ボックスで選択条件を指定するスクリーンショット。

以下の図では、 アンケート SBCCrsExam で使用する SSRS レポートが生成されたバージョンを示しています。

生成された SSRS レポートのスクリーンショット。

ER フレームワークを構成

電子申告の開発者ロールが付与されたユーザーは、ER フレームワークを使用して 新たな ER ソリューションを設計する前に、最小限の ER パラメータを構成する必要があります。

ER パラメーターのコンフィギュレーション

  1. 組織管理>ワークスペース>電子申告の順に移動します。

  2. 電子申告ワークスペースで、電子申告パラメーターを選択します。

  3. 電子申告パラメーターページの、一般タブで、デザイン モードの有効化オプションをはいに設定します。

  4. 添付タブで、次のパラメーターを設定します:

    • USMF社で使用する構成フィールドを、ファイルに設定します。
    • ジョブ アーカイブテンポラリーベースラインその他 の各フィールドをファイルに設定します。

ER パラメーターについては、ER フレームワークの構成 を参照してください。

ER 構成 プロバイダーをアクティブにする

各 ER 構成は、ER 構成プロバイダーに属します。 そのため、ER 構成を追加または編集する前に、 電子レポート ワークスペースで ER 構成プロバイダーをアクティブ化する必要があります。

ノート

ER 構成の所有者のみが編集できます。 そのため、ER 構成を編集する前に、 電子レポート ワークスペースで適切な ER 構成プロバイダーをアクティブにします。

ER 構成 プロバイダーの一覧をレビュー

  1. 組織管理>ワークスペース>電子申告の順に移動します。
  2. 電子申告ワークスペースの、関連するリンクセクションで、構成プロバイダーを選択します。
  3. 構成プロバイダーページで、各構成プロバイダー レコードは一意の名称と URL を持っています。 このページの内容をレビューします。 Litware, Inc. (https://www.litware.com) のレコードが既に存在する場合は、次の手順をスキップし、新しい ER 構成 プロバイダーを追加 します。

新しい ER 構成 プロバイダーを追加

  1. 構成 プロバイダーページで、新規を選択します。
  2. 名前フィールドに、Litware, Inc. と入力
  3. インターネット アドレスフィールドで、https://www.litware.com を入力します。
  4. 保存 を選択します。

ER 構成 プロバイダーをアクティブにする

  1. 組織管理>ワークスペース>電子申告の順に移動します。
  2. 電子申告 ワークスペースの、構成プロバイダーにLitware, Inc.を選択します。
  3. 有効に設定を選択します。

ER コンフィギュレーション プロバイダーについては、コンフィギュレーション プロバイダーを作成し有効としてマークする を参照してください。

ドメイン固有のデータ モデルを設計する

アンケート ビジネス ドメインで使用する データ モデル コンポーネントを含む、新たな ER 構成を作成する必要があります。 アンケート レポートを 生成する ER 形式を設計するときに、このデータ モデルをデータ ソースとして使用します。

新しいデータ モデル構成をインポートする セクションに記載されている手順を完了すると、提供された XML ファイルから必要なデータ モデルをインポートすることができます。 あるいは、新しいデータ モデルの構成を作成する セクションに記載されている手順を完了すると、ゼロからこのデータ モデルを設計することができます。

新しいデータ モデルのインポート

  1. Questionnaires model.version.1.xml ファイルをダウンロードし、ご利用のコンピューターに保存してください。
  2. 組織管理>ワークスペース>電子申告の順に移動します。
  3. 電子申告 ワークスペースで、レポートの構成を選択します。
  4. アクション ウィンドウで、Exchange> XML ファイルから読み込む を選択します。
  5. 参照を選択し、Questionnaires model.version.1.xml ファイルを検索して、選択します。
  6. OK を選択し、構成をインポートします。

続けるには、次の手順をスキップしてください : 新しいデータ モデルの構成を作成する

新しいデータ モデル 構成の作成

  1. 組織管理>ワークスペース>電子申告の順に移動します。
  2. 電子申告 ワークスペースで、レポートの構成を選択します。
  3. コンフィギュレーションの作成を選択します。
  4. ドロップダウン ダイアログ ボックスの、名前フィールドで、アンケート モデルを入力してください。
  5. 構成を作成するを選択して、構成を作成します。

データ モデルに名前をつける

  1. [構成] の構成ツリーで、[アンケート モデル] を選択します。
  2. デザイナー をクリックします。
  3. データ モデル デザイナーの [全般] クイック タブの [名前] フィールドに、「Questionnaires」と入力します。

新しいデータ モデル フィールドを追加する

  1. データ モデル デザイナーで、[新規] を選択します。

  2. データ モデル ノードを追加するドロップダウン ダイアログ ボックスで、以下の手順を実行してください :

    1. 新しいノードの種類に、モデル ルートを選択します。
    2. 名前 フィールドに、ルートと入力します。
    3. 追加を選択して新しいノードを追加します。

    このルート記述子は、 アンケート レポートのデータを提供します。 1つのデータモデルには複数の記述子を含めることができます。 それぞれの記述子は、1つの ER フォーマットに対して指定することができ、レポートの生成に必要なデータを識別することができます。

  3. もう一度 [ 新規] を選択します。 データ モデル ノードを追加するドロップダウン ダイアログ ボックスで、以下の手順を実行してください :

    1. 新規ノードのタイプに、アクティブなノードの子ノードを選択します。
    2. 名前フィールドに、CompanyNameと入力します。
    3. 品目タイプフィールドで、文字列を選択します。
    4. 追加 を選択して、新しいフィールドを追加します。

    このフィールドは、現在の会社の名前を、このデータ モデルをデータ ソースとして使用する ER レポートに渡します。

  4. もう一度 [ 新規] を選択します。 データ モデル ノードを追加するドロップダウン ダイアログ ボックスで、以下の手順を実行してください :

    1. 新規ノードのタイプに、アクティブなノードの子ノードを選択します。
    2. 名前フィールドに、アンケートと入力します。
    3. 品目タイプ フィールドで、レコード リストを選択します。
    4. 追加 を選択して、新しいフィールドを追加します。

    このフィールドは、このデータ モデルをデータ ソースとして使用する ER レポートにアンケートの一覧を渡します。

  5. アンケート ノードを選択します。

  6. 以下のデータ モデル構造が完成するまで、編集可能なデータ モデルの必須フィールドを同じ方法で追加していきます。

    フィールド パス データ タイプ フィールドの指定/戻り値
    ルート アンケート データを依頼する際に基準となるポイントです。
    Root\CompanyName 文字列 現在の会社の名前です。
    Root\ExecutionContext レコード フォーマット実行の詳細です。
    Root\ExecutionContext\FormatName 文字列 実行中の ER フォーマットの名前です。
    Root\Questionnaire レコード リスト アンケートの一覧です
    Root\Questionnaire\Active 文字列 現在のアンケートの状態です。
    Root\Questionnaire\Code 文字列 現在のアンケートのコードです。
    Root\Questionnaire\Description 文字列 現在のアンケートの説明です。
    Root\Questionnaire\QuestionnaireType 文字列 現在のアンケートのタイプです。
    Root\Questionnaire\QuestionOrder 文字列 現在のアンケートの番号順です。
    Root\Questionnaire\ResultsGroup レコード 現在のアンケートの結果パラメーターです。
    Root\Questionnaire\ResultsGroup\Code 文字列 現在の結果グループの ID コードです。
    Root\Questionnaire\ResultsGroup\Description 文字列 現在の結果グループの説明です。
    Root\Questionnaire\ResultsGroup\MaxNumberOfPoints レアル 獲得できるポイントの最大数。
    Root\Questionnaire\Question レコード リスト 現在のアンケートの質問の一覧です。
    Root\Questionnaire\Question\CollectionSequenceNumber 整数 現在の応答コレクションのシーケンス番号です。
    Root\Questionnaire\Question\Id 文字列 現在の質問の ID コードです。
    Root\Questionnaire\Question\MustBeCompleted 文字列 現在の質問が必須であるかどうかを示すフラグです。
    Root\Questionnaire\Question\PrimaryQuestion 文字列 現在の質問が主要なものであるかどうかを示すフラグです。
    Root\Questionnaire\Question\SequenceNumber 整数 現在の質問のシーケンス番号です。
    Root\Questionnaire\Question\Text 文字列 現在の質問のテキストです。
    Root\Questionnaire\Question\Answer レコード リスト 現在の質問の回答の一覧です。
    Root\Questionnaire\Question\Answer\CorrectAnswer 文字列 現在の回答が正しいものであるかどうかを示すフラグです。
    Root\Questionnaire\Question\Answer\Points レアル 現在の回答が選択されたときに確定するポイントです。
    Root\Questionnaire\Question\Answer\SequenceNumber 整数 現在の回答のシーケンス番号です。
    Root\Questionnaire\Question\Answer\Text 文字列 現在の回答のテキストです。

    以下の図は、データ モデル デザイナー ページ上の完成した編集可能なデータ モデルを示して います。

    ER データ モデル デザイナーで構成されたデータ モデルのスクリーンショット。

  7. 変更を保存します。

  8. データ モデル デザイナー ページを閉じます。

データモデルのデザインを完成させる

  1. 組織管理> 電子申告>コンフィギュレーションに移動します。
  2. [構成] の構成ツリーで、[アンケート モデル] を選択します。
  3. バージョン クイック タブで、状態が 下書き となっている構成のバージョンを選択します。
  4. ステータスの変更>完了 を選択します。

この構成のバージョン 1 の状態が 下書き から完了に変 わります。 バージョン 1 は変更できなくなりました。 このバージョンには、構成済みのデータ モデルが含まれており、その他の ER の構成の基礎として使用できます。 この構成のバージョン2が作成され、状態が下書きになります。 このバージョンを編集して、アンケート データ モデルを調整することができます。

[構成] ページの編集可能な構成のバージョンのスクリーンショット。

ER の構成に関する詳細情報については、 電子申告 (ER) の概要 を参照してください。

ノート

構成されたデータ モデルは、Questionnaire ビジネス ドメインの抽象表現であり、Microsoft Dynamics 365 Financeに固有の成果物との関係は含んでいません。

構成済みのデータモデルで使用するモデル マッピングをデザインする

電子申告開発者のロールを付与されたユーザーは、アンケート データ モデルのモデル マッピングコンポーネントを含む、新たな ER 構成を作成する必要があります。 このコンポーネントは、財務に特化して構成されたデータモデルを実装しています。 実行時に構成されたデータ モデルにアプリケーション データを入力するアプリケーション オブジェクトを指定するように、モデル マッピング コンポーネントを構成する必要があります。 このタスクを完了するには、財務におけるアンケート事業ドメインのデータ構造の実装についての詳細を把握しておく必要があります。

新しいモデル マッピング構成のインポート 」セクションの手順を完了すると、指定された XML ファイルから必要なモデル マッピング構成をインポートできます。 あるいは、新しいモデル マッピング構成を作成する セクションに記載されている手順を完了すると、ゼロからこのモデル マッピングを設計することができます。

新しいモデル マッピング構成をインポートする

  1. アンケート mapping.version.1.1.xml ファイルをダウンロードし、ご利用のコンピューターに保存してください。
  2. 組織管理>ワークスペース>電子申告の順に移動します。
  3. 電子申告 ワークスペースで、レポートの構成を選択します。
  4. アクション ウィンドウで、Exchange> XML ファイルから読み込む を選択します。
  5. 参照を選択し、アンケート mapping.version.1.1.xml ファイルを検索して、選択します。
  6. OK を選択し、構成をインポートします。

続けるには、次の手順をスキップしてください : 新しいモデル マッピング構成を作成する

新しいモデル マッピング構成を作成する

  1. 組織管理> 電子申告>コンフィギュレーションに移動します。

  2. [構成] の構成ツリーで、[アンケート モデル] を選択します。

  3. コンフィギュレーションの作成を選択します。

  4. ドロップダウン ダイアログ ボックスで、次の手順に従います。

    1. [ 新規] で、 データ モデルのアンケートに基づいて [モデル マッピング] を選択します。
    2. [名前] に「アンケート マッピング」と入力します。
    3. データ モデル定義で、ルート定義を選択します。
    4. 構成を作成するを選択して、構成を作成します。

新しいモデル マッピング コンポーネントを設計する

  1. [構成] の構成ツリーで、[アンケート マッピング] を選択します。
  2. デザイナーを選択して、マッピングの一覧を開きます。
  3. ルート定義に自動的に追加されたアンケート マッピング マッピングを選択します。
  4. デザイナーを選択して、選択したマッピングの構成を開始します。

ルート定義に新しいマッピングが自動的に追加されます。 このマッピングは、モデル の方向に対応しています。 そのため、このマッピングを使用して、データ モデルに必要なデータを入力できます。

データ ソースを追加してアプリケーション テーブルにアクセスする

アンケートの詳細を含むアプリケーション テーブルにアクセスするには、データソースを構成する必要があります。

  1. モデル マッピング デザイナーデータ ソースの種類ペインで、Dynamics 365 for Operations\テーブルレコードを選択します。

  2. KMCollection テーブルへのアクセスに使用する新しいデータ ソースを追加します。すべてのレコードが 1 つのアンケートを表します。

    1. データ ソース ペインで、ルートの追加を選択します。
    2. ダイアログ ボックスの [名前] に「 アンケート」と入力します。
    3. [テーブル] にKMCollection」と入力します
    4. 問い合わせをする オプションを はい に設定します。 その後、実行時のシステム クエリ ダイアログ ボックスで、このテーブルの フィルター オプション を指定できます。
    5. OKを選択して新しいデータ ソースを追加します。
  3. Data ソースの種類 ペインで、Dynamics 365 for Operations\テーブル レコード を選択します。

  4. KMQuestion テーブルへのアクセスに使用する新しいデータ ソースを追加します。すべてのレコードがアンケートの 1 つの質問を表します。

    1. データ ソース ペインで、ルートの追加を選択します。
    2. ダイアログ ボックスの [名前] に「質問」と入力 します
    3. [テーブル] にKMQuestion」と入力します
    4. OKを選択して新しいデータ ソースを追加します。
  5. データ ソース タイプ ウィンドウで、Dynamics 365 for Operations\テーブル レコードを選択します。

  6. KMAnswer テーブルへのアクセスに使用する新しいデータ ソースを追加します。すべてのレコードは、アンケートの質問に対する 1 つの回答を表します。

    1. データ ソース ペインで、ルートの追加を選択します。
    2. [名前] に「Answer」と入力します
    3. [テーブル] にKMAnswer」と入力します
    4. OKを選択して新しいデータ ソースを追加します。
  7. データ ソース タイプ ペインで、 Functions\計算フィールドを選択します。

  8. 親 KMCollection テーブルのすべてのレコードから KMQuestionResultGroup テーブルのレコードにアクセスするために使用する新しい計算フィールドを追加します。

    1. データ ソース ペインで、アンケートを選択します。
    2. 追加を選択します。
    3. ダイアログ ボックスの [名前] に「 $ResultGroup」と入力します。
    4. 式の編集を選択します。
    5. ER 式エディター で、FIRSTORNULL(@.'<Relations'.KMQuestionResultGroup) と入力し、KMCollection テーブルと KMQuestionResultGroup テーブル間の一対多の関係の パス を使用します。
    6. 保存 を選択し、式エディターを閉じます。
    7. OKを選択して新しい計算フィールドを追加します。
  9. データ ソース タイプ ペインで、 Functions\計算フィールドを選択します。

  10. 親 KMCollectionQuestion テーブルのすべてのレコードから KMQuestion テーブルの質問レコードにアクセスするために使用する新しい計算フィールドを追加します。

    1. データ ソース ペインで、アンケートを選択します。
    2. KMCollection テーブルの一対多の関係を含む<関係性 ノードを展開します。
    3. 関連する KMCollectionQuestion テーブルを選択し、追加をクリックし ます。
    4. ダイアログ ボックスで、名前 フィールドに 質問 と入力します。
    5. 式の編集を選択します。
    6. 式エディターの フィールドで、FIRSTORNULL (FILTER(Question, Question.kmQuestionId = .kmQuestionId)) と入力し、KMQuestion テーブルから適切な質問レコードを返します。
    7. 保存 を選択し、式エディターを閉じます。
    8. OKを選択して新しい計算フィールドを追加します。
  11. データ ソース タイプ ペインで、 Functions\計算フィールドを選択します。

  12. 親 KMQuestion テーブルのすべてのレコードから KMAnswer テーブルの回答レコードにアクセスするために使用する新しい計算フィールドを追加します。

    1. データソース ペインで、Questionnaire.<Relations.KMCollectionQuestion.$Question を選択し、続いて 追加 を選択します。
    2. ダイアログ ボックスで、名前 フィールドに $Answer と入力します。
    3. 式の編集を選択します。
    4. 式エディターの フィールドで、FILTER (Answer, Answer.kmAnswerCollectionId = @.kmAnswerCollectionId) と入力し、KMAnswer テーブルから適切な回答レコードを返します。
    5. 保存 を選択し、式エディターを閉じます。
    6. OKを選択して新しい計算フィールドを追加します。
  13. Data ソースの種類 ペインで、Dynamics 365 for Operations\Table を選択します。

  14. CompanyInfo テーブルのメソッドにアクセスするために使用する新しいデータ ソースを追加します。 このテーブルの find()メソッドは、このマッピングが呼び出された現在の財務インスタンスの会社を表すレコードを返すことに注意してください。

    1. データ ソース ペインで、ルートの追加を選択します。
    2. ダイアログ ボックスの 名前 フィールドに CompanyInfo と入力します。
    3. テーブルフィールドに、CompanyInfoと入力します。
    4. OKを選択して新しいデータ ソースを追加します。

データ ソースを追加してアプリケーション リストにアクセスする

アプリケーション リストへのアクセスに使用するデータ ソースを構成し、その値をアプリケーション テーブルの列挙型のフィールドの値と比較する必要があります。 比較の結果を使用して、データ モデルの適切なフィールドを入力します。

  1. Model マッピング デザイナー ページの データ ソースの種類 ペインで、Dynamics 365 for Operations\Enumeration を選択します。

  2. EnumAppNoYes 列挙型の値にアクセスするために使用する新しいデータ ソースを追加します。

    1. データ ソース ペインで、ルートの追加を選択します。
    2. ダイアログ ボックスの 名前 フィールドに EnumAppNoYes と入力します。
    3. リスト フィールドに、NoYes と入力します。
    4. OKを選択して新しいデータ ソースを追加します。
  3. Data ソースの種類 ペインで、Dynamics 365 for Operations\Enumeration を選択します。

  4. KMCollectionQuestionMode 列挙型の値にアクセスするために使用する新しいデータ ソースを追加します。

    1. データ ソース ペインで、ルートの追加を選択します。
    2. ドロップダウン ダイアログボックスの名前フィールドにEnumAppQuestionOrderと入力します。
    3. リスト フィールドに、KMCollectionQuestionMode と入力します。
    4. OKを選択して新しいデータ ソースを追加します。

ER ラベルを追加して指定した言語でレポートを生成する

ER ラベルを追加して、モデル マッピングを呼び出すコンテキストで定義された言語に依存する値を返すよう、データ ソースの一部を構成することができます。

  1. モデル マッピング デザイナー ページの、 データ ソース ペインで、回答を選択し、続いて編集を選択します。

  2. ラベルフィールドをアクティブ化します。

  3. 翻訳 を選択します。

  4. テキスト翻訳 ダイアログ ボックスで、次の手順に従ってください :

    1. ラベル ID フィールドで、PositiveAnswer と入力します。
    2. 既定の言語のテキストフィールドに はい と入力します。
    3. 翻訳 を選択します。
    4. ラベル ID フィールドで、NegativeAnswer と入力します。
    5. 既定の言語のテキストフィールドに いいえ と入力します。
    6. 翻訳 を選択します。
  5. テキスト翻訳 ダイアログ ボックスを閉じます。

  6. キャンセルを選択します。

編集可能なモデル マッピングに ER ラベルを追加するスクリーンショット。

既定の言語に対してのみ ER ラベルを入力しました。 ER ラベルを他の言語に翻訳する方法については、「 多言語レポートの設計」を参照してください。

データ ソースを追加してリストの比較結果値をテキスト値に変換する

異なるソースに対して列挙値とテキスト値の比較の結果を複数回変換する必要があるため、このロジックを 1 つのデータ ソースとして構成することをお勧めします。 ただし、このデータ ソースを再利用できるようにするには、パラメーター化されたデータ ソースとして構成する必要があります。 詳細情報については、計算フィールド タイプのER データ ソースのパラメーター化された呼び出しに対応するを参照してください。

  1. モデル マッピング デザイナー ページの、データ ソース タイプ ペインで、全般\空のコンテナーを選択します。

  2. 新しいコンテナー データ ソースを追加します :

    1. データ ソース ペインで、ルートの追加を選択します。
    2. ダイアログ ボックスで、名前 フィールドに ヘルパー と入力します。
    3. OKを選択し、新しいコンテナー データ ソースを追加します。
  3. データ ソース タイプ ペインで、 Functions\計算フィールドを選択します。

  4. 新しいデータ ソースを追加します :

    1. データ ソースペインで、ヘルパーを選択します。

    2. 追加を選択します。

    3. ドロップダウン ダイアログボックスの名前フィールドにNoYesEnumToString と入力します。

    4. 式の編集を選択します。

    5. 式エディターで、パラメーターを選択します。

    6. 次の手順に従い、構成された式のパラメータを指定します :

      1. 新規を選択します。
      2. ダイアログ ボックスで、名前 フィールドに 引数 と入力します。
      3. タイプ フィールドで、データー型にブールを選択します。
      4. OKを選択します。
    7. フィールドで、IF (Argument = true, @"GER_LABEL:PositiveAnswer", @"GER_LABEL:NegativeAnswer") と入力し、適切な ER ラベルのテキストを返すよう設定します。ER ラベルは実行コンテキストの言語と指定されたパラメータの値によって異なります。

    8. 保存 を選択し、式エディターを閉じます。

    9. OKを選択して新しいデータ ソースを追加します。

ER モデル マッピング デザイナーで構成されたモデル マッピングのスクリーンショット。

データ ソースをデータ モデル フィールドにバインドする

実行時にデータ モデルにアプリケーション データを格納する方法を指定するには、構成されたデータ ソースをデータ モデルのフィールドにバインドする必要があります。

  1. モデル マッピング デザイナー ページの、データ モデル ペインで、CompanyName を選択します。

  2. データ ソース ペインで、CompanyInfoを展開し、続いて以下の手順を実行します :

    1. CompanyInfo テーブルの find() メソッドを表わす、CompanyInfo.find() ノードを展開します。
    2. CompanyInfo.find().Name を選択します。
    3. バインドを選択し、構成されたモデル マッピングが実行時のコンテキストで呼び出される会社名を入力します。
  3. データ モデル ペインで、アンケートを選択します。

  4. データ ソース ペインで、Questionnaire を選択し、続いて Bind を選択してアンケートのレコードを入力します。

  5. データ モデル ペインで、アンケートを展開し、続いて以下の手順を実行します :

    1. データ モデル ペインで、アクティブを選択します。
    2. データ モデル ペインで、編集を選択します。
    3. フィールドに Helper.NoYesEnumToString (@.Active = EnumAppNoYes.Yes) と入力し、リストされた値間の比較を行ったテキスト依存、言語依存の結果を入力します。
  6. 以下の結果が得られるまで、同じ方法でデータ ソースをデータ モデル フィールドにバインドしていきます。

    フィールド パス データ タイプ 操作 バインド式
    CompanyName 文字列 バインド CompanyInfo.'find()'.Name
    アンケート レコード リスト バインド アンケート
    Questionnaire\Active 文字列 編集 Helper.NoYesEnumToString(@.active = EnumAppNoYes.Yes)
    Questionnaire\Code 文字列 バインド @.kmCollectionId
    Questionnaire\Description 文字列 バインド @.Description
    Questionnaire\QuestionnaireType 文字列 バインド @.'>Relations'.kmCollectionTypeId.Description
    Questionnaire\QuestionOrder 文字列 編集 CASE (@.questionMode,
    EnumAppQuestionOrder.Conditional, "Conditional",
    EnumAppQuestionOrder.Random, "Random (percentage in questionnaire)",
    EnumAppQuestionOrder.RandomGroup, "ランダム (結果グループ内の割合)"
    EnumAppQuestionOrder.Sequence, "Sequential",
    "")
    Questionnaire\ResultsGroup レコード
    Questionnaire\ResultsGroup\Code 文字列 バインド @.'$ResultGroup'.kmQuestionResultGroupId
    Questionnaire\ResultsGroup\Description 文字列 バインド @.'$ResultGroup'.description
    Questionnaire\ResultsGroup\MaxNumberOfPoints レアル バインド @.'$ResultGroup'.maxPoint
    Questionnaire\Question レコード リスト バインド @.'<Relations'.KMCollectionQuestion
    Questionnaire\Question\CollectionSequenceNumber 整数 バインド @.answerCollectionSequenceNumber
    Questionnaire\Question\Id 文字列 バインド @.kmQuestionId
    Questionnaire\Question\MustBeCompleted 文字列 編集 Helper.NoYesEnumToString(@.mandatory = EnumAppNoYes.Yes)
    Questionnaire\Question\PrimaryQuestion 文字列 バインド @.parentQuestionId
    Questionnaire\Question\SequenceNumber 整数 バインド @.SequenceNumber
    Questionnaire\Question\Text 文字列 バインド @.'$Question'.text
    Questionnaire\Question\Answer レコード リスト バインド @.'$Question'.'$Answer'
    Questionnaire\Question\Answer\CorrectAnswer 文字列 編集 Helper.NoYesEnumToString(@.correctAnswer = EnumAppNoYes.Yes)
    Questionnaire\Question\Answer\Points レアル バインド @.point
    Questionnaire\Question\Answer\SequenceNumber 整数 バインド @.sequenceNumber
    Questionnaire\Question\Answer\Text 文字列 バインド @.text

    以下の画面は、モデル マッピング デザイナー のページ上で構成されたモデル マッピングの最終的な状態を示して います。

    ER モデル マッピング デザイナーで完全に構成されたモデル マッピングのスクリーンショット。

  7. 変更を保存します。

  8. モデル マッピング デザイナー ページを閉じます。

モデル マッピングを完了する

  1. 組織管理> 電子申告>コンフィギュレーションに移動します。
  2. [構成] の構成ツリーで、[アンケート マッピング] を選択します。
  3. バージョン クイック タブで、状態が 下書き となっている構成のバージョンを選択します。
  4. ステータスの変更>完了 を選択します。

この構成のバージョン 1.1 の状態が 下書き から完了に変 わります。 バージョン 1.1 は変更できなくなりました。 このバージョンには、構成済みのモデル マッピングが含まれており、その他の ER の構成の基礎として使用できます。 この構成のバージョン 1.2 が作成され、状態が下書きになります。 このバージョンを編集して、アンケート マッピングの構成を調整することができます。

[構成] ページの編集可能な ER 構成のバージョンのスクリーンショット。

ノート

ご利用の財務に固有となる実装となり、アンケート業務ドメインを表わす抽象データ モデルです。

カスタム レポートで使用するテンプレートを設計する

ER フレームワークでは、定義済みのテンプレートを使用して、Microsoft Office形式 (ブックまたはWord ドキュメントExcel) でレポートを生成します。 必要なレポートを生成するときに、フレームワークは、構成されたデータフローに従って、必要なデータをテンプレートに入力します。 ます、まずカスタム レポートデ使用するテンプレートを設計する必要があります。 このテンプレートをExcelブックとして設計します。この構造は、カスタム レポートのレイアウトを表します。 必要なデータを入力する予定のすべてのExcel項目に名前を付けます。

  1. Questionnaires report template.xlsx ファイルをダウンロードし、ご利用のコンピューターに保存してください。
  2. ファイルを Excel で開き、ブックの構造を確認します。

次の図に示すように、ダウンロードしたテンプレートは、アンケートの質問を適切な回答と共に提示する特定のアンケートを印刷するように設計されています。

指定したアンケートを印刷するExcel テンプレートのスクリーンショット。

このテンプレートにExcel名が追加され、アンケートの詳細が入力されます。 名前マネージャーを使用して、Excel名を確認します。

提供されたExcelテンプレートで名前マネージャーを使用してExcelの名前を確認する画面

レポート ラベルは、英語で固定テキストとして追加されます。 構成されたモデル マッピングの言語依存式の場合と同様に、ER 形式の labels を使用して、ラベルに言語依存テキストを入力する新しいExcel名でレポート ラベルを置き換えることができます。 この場合、ER ラベルを編集可能な形式で追加する必要があります。

次の図に示すように、カスタム レポート ヘッダーは、Excelがページングを実行できるように指定されています。

指定されたExcelテンプレートのカスタムレポートヘッダーのスクリーンショット。

形式のデザイン

電子申告機能コンサルタントのロールが付与されているユーザーは、フォーマット コンポーネントを含む新しい ER 構成を作成する必要があります。 実行時にレポート テンプレートに必要なデータを入力する方法を指定するには、書式コンポーネントを構成する必要があります。

設計されたフォーマットの構成をインポートする セクションに記載されている手順を完了すると、提供された XML ファイルから必要なフォーマットをインポートすることができます。 あるいは、新しいフォーマットの構成を作成する セクションに記載されている手順を完了すると、ゼロからこのフォーマットを設計することができます。

設計済みフォーマットの構成をインポートする

  1. アンケート format.version.1.1.xml ファイルをダウンロードし、ご利用のコンピューターに保存してください。
  2. 組織管理>ワークスペース>電子申告の順に移動します。
  3. 電子申告 ワークスペースで、レポートの構成を選択します。
  4. [操作] ウィンドウで、Exchange> XML ファイルから読み込む を選択します。
  5. 参照を選択し、アンケート format.version.1.1.xml ファイルを検索して、選択します。
  6. OK を選択し、構成をインポートします。

続けるには、次の手順をスキップしてください : 新しいフォーマットの構成を作成する

新しい構成の書式設定の作成

  1. 組織管理> 電子申告>コンフィギュレーションに移動します。

  2. [構成] の構成ツリーで、[アンケート モデル] を選択します。

  3. コンフィギュレーションの作成を選択します。

  4. ドロップダウン ダイアログ ボックスで、次の手順に従います。

    1. [ 新規] で、 データ モデルのアンケートに基づいて [書式] を選択します。

    2. [名前] にアンケート レポート」と入力します。

    3. データ モデルのバージョンで1 を選択します。

      ノート

      • ベース データ モデルの特定のバージョンを選択すると、対応するバージョンのデータ モデルの構造が、作成した形式の モデル データ ソースの構造として表示されます。
      • このフィールドは必須ではありません。 その場合、データ モデルの ドラフト バージョンの構造は、作成した形式の モデル データ ソースの構造として表示されます。 その後、モデルを調整を行って、フォーマットにおける調整結果をすぐに確認することができます。 この方法では、データモデル、モデルマッピング、フォーマットを同時に構成する場合に、ER ソリューション設計の効率を向上させることが期待できます。
      • 基本データ モデルの特定のバージョンを選択した場合、フォーマットの編集を開始したときに、後で下書き版を使用するように切り替えることができます。
    4. データ モデル定義で、ルート定義を選択します。

  5. 構成を作成するを選択して、構成を作成します。

レポートのテンプレートをインポートする

  1. [構成] の構成ツリーで、[アンケート レポート] を選択します。

  2. デザイナーを選択して、カスタム フォーマットの構成を始めます。

  3. Format デザイナーの操作ウィンドウで、Import>Import from Excel を選択します。

  4. ダイアログ ボックスで、次の手順に従ってください :

    1. テンプレートの選択を選択します。
    2. ローカルに保存した アンケート レポート template.xslx ファイルを検索して選択し、開く を選択します。
    3. テンプレートをインポートするには、OK を選択します。

    レポート テンプレートのインポートのスクリーンショット。

Excel\File フォーマット要素は、編集可能な形式にルート要素として自動的に追加されます。 さらに、Excel\Range 書式要素または Excel\Cell 書式要素は、インポートされたテンプレートの認識Excel名ごとに自動的に追加されます。 Excel\Header 形式には入れ子のString 要素が含まれており、インポートされたテンプレートのヘッダー設定を反映するために自動的に追加されます。

ER 操作デザイナーで自動的に追加された要素を含む書式構造のスクリーンショット。

フォーマットを構成する

  1. Format デザイナーの書式ツリーで、Excel ルート要素を選択します。

  2. [ 書式 ] タブの [ 名前 ] フィールドに「 Report」と入力します。

  3. 優先する言語 フィールドで、ユーザー設定を選択して、ユーザーの優先する言語でレポートを実行します。

  4. 優先する文化 フィールドで、ユーザー設定を選択して、ユーザーの優先する文化でレポートを実行します。

    ER プロセスで使用する言語と文化のコンテキストを指定する方法については、多言語のレポートを設計するを参照してください。

    ER 操作デザイナーでデザインされたレポートの言語とカルチャの設定を構成するスクリーンショット。

  5. フォーマット ツリーで、ルート ノードを展開し、続いて ResultsGroup を選択します。

  6. フォーマットタブのレプリケーションの方向フィールドで、レプリケーションなしを選択してください。この場合は、1つのアンケートに複数の結果グループが存在することを想定していないためです。

    ER 操作デザイナーで Range 形式要素のレプリケーション方向を定義するスクリーンショット。

  7. 保存 を選択します。

レポートのタイトルに使用するデータのバインドを定義する

生成されたレポートのタイトルを入力する書式要素のデータ バインディングを指定する必要があります。

  1. 書式デザイナーの [マッピング] タブで、Report\ReportTitle 要素を選択します。

  2. 式の編集を選択します。

  3. 式エディターで、翻訳を選択します。

  4. テキスト翻訳 ダイアログ ボックスで、次の手順に従ってください :

    1. ラベル ID フィールドで、ReportTitle と入力します。
    2. 既定の言語のテキストフィールドにアンケート レポートと入力します。
    3. 翻訳を選択してから、保存を選択します。
    4. 翻訳 を選択して、テキスト翻訳 ダイアログ ボックスを閉じます。
  5. 式エディターを閉じます。

    生成されたレポートのタイトルを入力するようにバインドを構成するスクリーンショット。

この手法を使用して、現在のテンプレートの他のすべてのラベルを言語依存にします。 1 つの ER 構成の追加されたラベルをサポートされているすべての言語に変換する方法については、「 多言語レポートの設計」を参照してください。

モデル データ ソースをレビューする

  1. フォーマット デザイナー ページの マッピング タブで、この ER フォーマットの基本データ モデルを表す モデル データ ソースを選択します。
  2. 編集を選択します。
  3. データ ソース プロパティ ダイアログ ボックスの情報をを確認します。 このデータソースは、アンケート モデルの ER 構成に存在する アンケート データ モデル コンポーネントのバージョン 1 を表しています。

ER 操作デザイナーのモデル データ ソースのプロパティのスクリーンショット。

フォーマットの要素をデータ ソース フィールドにバインドする

実行時にテンプレートを入力する方法を指定するには、適切なExcel名に関連付けられているすべての書式要素を、この形式のデータ ソースの 1 つのフィールドにバインドします。

  1. フォーマット ツリーの フォーマット デザイナー ページで、レポート\CompanyNameフォーマット要素を選択します。

  2. マッピング タブで、文字列型のデータ ソース フィールド model.CompanyName を選択します。

  3. バインドを選択して、テンプレートに会社名を入力します。

  4. フォーマット ツリーで、レポート\アンケート 要素を選択し ます。

  5. マッピング タブで、レコード リスト型のデータ ソース フィールド model.Questionnaire を選択します。

  6. バインドを選択します。

  7. 詳細の表示を選択して、フォーマット要素の詳細を表示します。

    アンケート範囲フォーマット要素は、垂直方向に複製されるように構成されています。 Record list 型のデータ ソースにバインドされると、バインドされたデータ ソースのすべてのレコードに対して、Excel テンプレートの適切なQuestionnaire 範囲が繰り返されます。

    ER 操作デザイナーで、アンケート範囲書式要素を適切なレコード リスト データ ソースにバインドするスクリーンショット。

    Excel テンプレートの Questionnaire 範囲は行 5 から 14 の間で定義されているため、報告されたすべてのアンケートに対してこれらの行が繰り返されます。

    レコード リスト データ ソースのすべてのレコードに対して生成されたレポートで繰り返されるExcel テンプレート内の行のスクリーンショット。

  8. 以下の表に示すように、残りのフォーマット要素にも同様のバインディングを設定してください。

    ノート

    この表では、「データソースパス」欄の情報は、 ER 機能 相対パスがオンになっていることを前提としています。

    フォーマット要素のパス データ ソースのパス
    Excel\レポートタイトル @"GER_LABEL:ReportTitle"
    Excel\CompanyName model.CompanyName
    Excel\アンケート model.Questionnaire
    Excel\Questionnaire\Active @.Active@model.Questionnaire の場合
    Excel\アンケート\コード @.Code
    Excel\Questionnaire\Description @.Description
    Excel\アンケート\アンケートタイプ @.QuestionnaireType
    Excel\アンケート\質問順序 @.QuestionOrder
    Excel\Questionnaire\ResultsGroup\Code_ @.ResultsGroup.Code
    Excel\Questionnaire\ResultsGroup\Description_ @.ResultsGroup.Description
    Excel\アンケート\結果グループ\最大ポイント数 @.ResultsGroup.MaxNumberOfPoint
    Excel\Questionnaire\Question @.Question
    Excel\Questionnaire\Question\CollectionSequenceNumber @.CollectionSequenceNumber@model.Questionnaire.Question の場合
    Excel\Questionnaire\Question\Id @.Id
    Excel\Questionnaire\Question\MustBeCompleted @.MustBeCompleted
    Excel\Questionnaire\Question\PrimaryQuestion @.PrimaryQuestion
    Excel\Questionnaire\Question\SequenceNumber @.SequenceNumber
    Excel\Questionnaire\Question\Text @.Text
    Excel\アンケート\質問\回答 @.Answer
    Excel\Questionnaire\Question\Answer\CorrectAnswer @.CorrectAnswer@model.Questionnaire.Answer の場合
    Excel\アンケート\質問\回答\ポイント @.Points
    Excel\Questionnaire\Question\Answer\Text @.Text
  9. 完了後は、保存 を選択します。

以下の画面は、フォーマット デザイナー ページ上で構成されたデータ バインディングの最終的な状態を示して います。

ER 操作デザイナーで構成されたデータ バインディングのスクリーンショット。

重要

指定されたデータソースとバインディングの全体のコレクションは、構成されたフォーマットのフォーマット マッピング コンポーネントを表します。 このフォーマット マッピングは、レポート生成に向けて構成されたフォーマットを実行する際に呼び出されます。

ER から設計済みのフォーマットを実行する

構成 ページから、テスト用にデザインされた形式を実行できます。

  1. 組織管理> 電子申告>コンフィギュレーションに移動します。
  2. 構成ページの構成ツリーで、アンケート モデルを展開し、アンケート レポート を選択します。
  3. 下書き状態のフォーマット バージョンのデザイナーを選択します。
  4. フォーマット デザイナー ページで、実行を選択します。
  5. ER パラメーター ダイアログ ボックスの 含めるレコード クイックタブに、SBCCrsExam アンケートのみが含まれるようにフィルター処理オプションを構成します。
  6. [ OK] を 選択してフィルターを確認します。
  7. OK を選択してレポートを実行します。
  8. 生成されたレポートを確認します。

default では、生成されたレポートがダウンロードできるExcel ファイルとして配信されます。 次の図は、生成されたレポートの 2 ページをExcel形式で示しています。

Excel形式で生成されたレポートの例のスクリーンショット、ページ1。

ページ2のExcel形式で示した、生成されたレポートの例のスクリーンショット

設計済みのフォーマットを調整する

フォーマットを修正して生成されたドキュメントの名前を変更する

既定では、現在のユーザーのエイリアスは生成されたドキュメントに名前を付けます。 形式を変更するときに、生成されたドキュメントにカスタム ロジックに基づいて名前が付けられるように、この動作を変更できます。 たとえば、生成されたドキュメントの名前は、現在のセッションの日時とレポートのタイトルに基づいて付けることができます。

  1. [書式] デザイナーで、[レポート] ルート アイテムを選択します。
  2. マッピング タブで、ファイル名の編集を選択します。
  3. フィールドに、CONCATENATE (\@"GER_LABEL:ReportTitle", " - ", DATETIMEFORMAT(SESSIONNOW(), "yyyy-MM-dd hh-mm-ss")) と入力します。
  4. 保存 を選択し、式エディターを閉じます。
  5. 保存 を選択します。

フォーマットを修正して質問の表示順を変更する

生成されたレポートでは、質問が正しい順序で表示されません。 フォーマットを変更することで順番を変更することができます。

  1. [書式] デザイナーで、[レポート] ルート アイテムを選択します。

  2. マッピング タブのフォーマット ツリーで、レポート\アンケート\質問を展開します。

    ER 操作デザイナーの Range 型の質問形式要素のスクリーンショット。

  3. マッピング タブで、model.Questionnaireを選択します。

  4. 追加>機能\関数計算フィールド を選択し、名前 フィールドに OrderedQuestions と入力します。

  5. 式の編集を選択します。

  6. 式の編集エディターの フィールドに ORDERBY (model.Questionnaire.Question, model.Questionnaire.Question.SequenceNumber) を入力し、現在のアンケートの質問のリストをシーケンス オーダー番号順に並び替えます。

  7. 保存 を選択し、式エディターを閉じます。

  8. OK をクリックして、新しい計算フィールドの入力を完了します。

  9. マッピング タブで、model.Questionnaire.OrderedQuestions を選択します。

  10. 書式ツリーで、Excel\Questionnaire\Question を選択します。

  11. Bind を選択し、 入れ子になった要素のすべてのバインディングで、現在の model.Questionnaire.Questions パスが新しい model.Questionnaire.OrderedQuestions パスに置き換えられていることを確認します。

  12. 保存 を選択します。

ER 操作デザイナーで構成された OrderedQuestions データ ソースに Question 形式要素をバインドするスクリーンショット。

ER から修正済みのフォーマットを実行する

ER フレームワークから、テスト用に変更されたフィーマットを実行できます。

  1. フォーマット デザイナー ページで、実行を選択します。
  2. ER パラメーター ダイアログ ボックスの 含めるレコード クイックタブに、SBCCrsExam アンケートのみが含まれるようにフィルター処理オプションを構成します。
  3. [ OK] を 選択してフィルターを確認します。
  4. OK を選択してレポートを実行します。
  5. 生成されたレポートを確認します。

次の図は、Excel形式で生成されたレポートで、質問が正しく順序付けされていることを示しています。

正しく並べ替えられた質問があるExcel形式で生成されたレポートのスクリーンショット。

フォーマットの設計を完了する

  1. 組織管理> 電子申告>コンフィギュレーションに移動します。
  2. [構成] の構成ツリーで、[アンケート モデル] を展開し、[アンケート レポート] を選択します。
  3. バージョン クイック タブで、状態が 下書き となっている構成のバージョンを選択します。
  4. ステータスの変更>完了 を選択します。

この構成のバージョン 1.1 の状態が 下書き から完了に変 わります。 バージョン 1.1 は変更できなくなりました。 このバージョンには、構成済のフォーマットが含まれており、カスタム レポートの印刷に使用できます。 この構成のバージョン 1.2 が作成され、状態が下書きになります。 このバージョンを編集して、アンケートレポートのフォーマットを調整することができます。

[構成] ページの編集可能な ER 構成のスクリーンショット。

ノート

構成されたフォーマットは、アンケートレポートのデザインであり、財務固有のアーティファクトとの関係はありません。

設計されたレポートを呼び出すアプリケーション成果物を開発する

システム管理者ロールが付与されたユーザーは、設定された ER フォーマットをアプリケーション ユーザー インターフェース (UI) から呼び出してカスタム レポートを生成できるように、新しいロジックを開発する必要があります。 現在 ER には、この種のロジックを構成する機能はありません。 そのため、多少の技術的な作業が必要となります。

新しいロジックを開発するには、継続的なビルドに対応したトポロジをデプロイする必要があります。 詳細については、継続的ビルドとテストの自動化をサポートするトポロジの配置を参照してください。 また、このトポロジの開発環境にもアクセスできる必要があります。 利用可能な ER の API については、ER フレームワークの API を参照してください。

ソース コードの修正

データ コントラクトのクラスを追加する

新しい QuestionnairesErReportContract クラスをVisual Studio プロジェクトに追加します。 構成された ER 形式の実行に使用するデータ コントラクトを指定するコードを記述します。

/// <summary>
///     This class is the data contract class for the <c>QuestionnairesErReportDP</c> class.
/// </summary>
/// <remarks>
///    This is the data contract class for the Questionnaires ER report.
/// </remarks>
[
    DataContractAttribute,
    SysOperationContractProcessingAttribute(classStr(QuestionnairesErReportUIBuilder))
    ]
    public class QuestionnairesErReportContract extends ERFormatMappingRunBaseContract implements SysOperationValidatable
{
    ERFormatMappingId formatMapping;

    /// <summary>
    ///    Validates the report parameters.
    /// </summary>
    /// <returns>
    ///    true if no errors; otherwise, false.
    /// </returns>
    public boolean validate()
    {
        boolean ret = true;
        if (!formatMapping)
        {
            ret = checkFailed(strFmt("@SYS26332", new SysDictType(extendedTypeNum(ERFormatMappingId)).label()));
        }
        return ret;
    }
    [
        DataMemberAttribute('FormatMapping'),
        SysOperationLabelAttribute(literalstr("@ElectronicReporting:FormatMapping")),
        SysOperationHelpTextAttribute(literalstr("@ElectronicReporting:FormatMapping"))
    ]
    public ERFormatMappingId parmFormatMapping(ERFormatMappingId _formatMapping = formatMapping)
    {
        formatMapping = _formatMapping;
        return formatMapping;
    }
}

UI Builder のクラスを追加する

新しい QuestionnairesErReportUIBuilder クラスをVisual Studio プロジェクトに追加します。 実行する ER 形式の形式マッピング ID を検索するランタイム ダイアログ ボックスを生成するコードを記述します。 入力されたコードは、ルート 定義を使用して、アンケート データ モデルを参照するデータ モデルタイプのデータ ソースを含む ER フォーマットのみを検索します。

ノート

また、ER 統合ポイントを使用して ER フォーマットをフィルター処理することもできます。 詳細については、フォーマット マッピングの検索を表示する APIを参照してください 。

/// <summary>
/// The UIBuilder class for Questionnaires ER report
/// </summary>
class QuestionnairesErReportUIBuilder extends SysOperationAutomaticUIBuilder
{
    public const str ERQuestionnairesModel = 'Questionnaires';
    public const str ERQuestionnairesDataContainer = 'Root';

    /// <summary>
    /// Action after build of the dialog UI.
    /// </summary>
    public void postBuild()
    {
        DialogField formatMapping;
        super();
        formatMapping = this.bindInfo().getDialogField(this.dataContractObject(),
            methodStr(QuestionnairesErReportContract, parmFormatMapping));
        formatMapping.registerOverrideMethod(
            methodStr(FormReferenceControl, lookupReference),
            methodStr(QuestionnairesErReportUIBuilder, formatMappingLookup),
            this);
    }

    /// <summary>
    /// Performs the lookup form for format mapping.
    /// </summary>
    /// <param name="_referenceGroupControl">
    /// The control to perform lookup form.
    /// </param>
    public void formatMappingLookup(FormReferenceControl _referenceGroupControl)
    {
        ERObjectsFactory::createFormatMappingTableLookupForControlAndModel(
            _referenceGroupControl,
            ERQuestionnairesModel,
            ERQuestionnairesDataContainer).performFormLookup();
    }
}

データ プロバイダーのクラスを追加する

新しい QuestionnairesErReportDP クラスをVisual Studio プロジェクトに追加します。 構成された ER 形式の実行に使用するデータ プロバイダーを導入するコードを記述します。 作成されたコードには、このデータ プロバイダーのデータ コントラクトのみが含まれます。

/// <summary>
/// Data provider class for Questionnaires ER report.
/// </summary>
public class QuestionnairesErReportDP
{
    QuestionnairesErReportContract contract;
    public static QuestionnairesErReportDP construct()
    {
        QuestionnairesErReportDP  dataProvider;
        dataProvider = new QuestionnairesErReportDP();
        return dataProvider;
    }
}

ラベル ファイルを追加する

新しい QuestionnairesErReportLabels_en-US ラベル ファイルをVisual Studio プロジェクトに追加します。 新しい UI リソースに次のラベルを指定します。

  • @QuestionnairesReport ラベル : 米国英語 (en-US) で記述された アンケート レポート (ER で実行) のテキストを含む、新たなメニュー項目に使用される
  • @QuestionnairesReportBatchJobDescription ラベル : 選択された ER フォーマットがバッチジョブを実行するようにスケジュールされている場合に、バッチ ジョブのタイトルに使用される

レポート サービス クラスを追加する

新しい QuestionnairesErReportService クラスをVisual Studio プロジェクトに追加します。 ER 形式を呼び出し、形式マッピング ID で識別し、パラメーターとしてデータ コントラクトを提供するコードを記述します。

using Microsoft.Dynamics365.LocalizationFramework;
/// <summary>
/// The electronic reporting service class for Questionnaires ER report
/// </summary>
class QuestionnairesErReportService extends SysOperationServiceBase
{
    public const str ERModelDataSourceName = 'model';
    public const str DefaultExportedFileName = 'Questionnaires report';
    public const str ParametersDataSourceName = 'RunTimeParameters';

    /// <summary>
    /// Generates report by using Electronic reporting framework
    /// </summary>
    /// <param name = "_contract">The Questionnaires report contract</param>
    public void generateReportByGER(QuestionnairesErReportContract _contract)
    {
        ERFormatMappingId formatMappingId;
        QuestionnairesErReportDP  dataProvider;
        dataProvider = QuestionnairesErReportDP::construct();
        formatMappingId = _contract.parmFormatMapping();
        if (formatMappingId)
        {
            try
            {
                ERIModelDefinitionParamsAction parameters = new ERModelDefinitionParamsUIActionComposite()
                    .add(new ERModelDefinitionObjectParameterAction(ERModelDataSourceName, ParametersDataSourceName, _contract, true));

                // Call ER to generate the report.
                ERIFormatMappingRun formatMappingRun = ERObjectsFactory::createFormatMappingRunByFormatMappingId(formatMappingId, DefaultExportedFileName);
                if (formatMappingRun.parmShowPromptDialog(true))
                {
                    formatMappingRun.withParameter(parameters);
                    formatMappingRun.withFileDestination(_contract.getFileDestination());
                    formatMappingRun.run();
                }
            }
            catch
            {
                // An error occurred while exporting data.
                error("@SYP4861341");
            }
        }
        else
        {
            // There is no data available.
            info("@SYS300117");
        }
    }
}

アプリケーション データを実行する ER 形式を使用する場合は、データ モデル 型のデータ ソースを形式マッピングで構成する必要があります。 このデータソースは、単一のルート定義を使用して、指定されたデータ モデルの特定の部分を参照します。 ER 形式を実行すると、このデータ ソースを呼び出して、特定のモデルとルート定義用に構成された適切な ER モデル マッピングにアクセスします。

ソース コードで準備したすべての情報を渡し、データ コントラクトの一部として格納するには、この型の ER モデル マッピングを使用して、実行中の ER 形式に格納します。 ER モデル マッピングでは、QuestionnairesErReportContract クラスを参照するオブジェクト型のデータ ソースを設定する必要があります。 モデル マッピングを識別するには、このモデル マッピングを呼び出すデータ ソースを指定する必要があります。 指定されたコードでは、このデータ ソースはモデル値を持つ ERModelDataSourceName 定数によって指定されます。 モデル マッピングに対して、どのデータ ソースがデータ コントラクトの公開に使用されているかを特定するには、データ ソース名を指定する必要があります。 作成されたコードでは、この名前は の値を持つ ParametersDataSourceName 定数で指定されます。

ノート

新しい環境では、ER モデル マッピング デザイナーでこのタイプのクラスが利用できるよう、ER メタデータの更新が必要となる場合があります。 詳細については、ER フレームワークの構成 を参照してください。

レポートのコントローラ クラスを追加する

新しい QuestionnairesErReportController クラスをVisual Studio プロジェクトに追加します。 必要に応じて、提供された QuestionnairesErReportUIBuilder クラスのロジックに基づいて構築されたダイアログ ボックスで、同期モードまたはバッチ モードで ER 形式を実行するコードを記述します。

/// <summary>
/// The controller for Questionnaires ER report
/// </summary>
class QuestionnairesErReportController extends ERFormatMappingRunBaseController
{
    /// <summary>
    /// The main entrance of the controller
    /// </summary>
    /// <param name = "args">The arguments</param>
    public static void main(Args args)
    {
        QuestionnairesErReportController operation;
        operation = new QuestionnairesErReportController(
            classStr(QuestionnairesErReportService),
            methodStr(QuestionnairesErReportService, generateReportByGER),
            SysOperationExecutionMode::Synchronous);
        operation.startOperation();
    }

    /// <summary>
    /// Gets caption of the dialog.
    /// </summary>
    /// <returns>Caption of the dialog</returns>
    public ClassDescription defaultCaption()
    {
        ClassDescription batchDescription;
        batchDescription = "Questionnaires report (powered by ER)";
        return batchDescription;
    }
}

新しい QuestionnairesErReport メニュー項目をVisual Studio プロジェクトに追加します。 Object プロパティでは、このメニュー項目は QuestionnairesErReportController クラスを参照します。 これを使用して、ER 形式を選択して実行するユーザーアクセス許可を指定します。 ラベル プロパティでは、このメニュー項目は前述の手順で作成した @QuestionnairesReport ラベルを参照し、アプリケーションの UI に正しいテキストが表示されるようになります。

既存の KM メニューをVisual Studio プロジェクトに追加します。 出力の種類の新しい QuestionnairesErReport 項目をこのメニューに追加します。 この項目は、前のセクションで説明したメニュー項目 QuestionnairesErReport を参照する必要があります。

Visual Studio プロジェクトをビルドする

プロジェクトをビルドして、新しいメニュー項目をユーザーが使用できるようにします。

アプリケーションからフォーマットを実行する

  1. アンケート>設計>アンケート レポート (ER による実行) に移動します。

    アンケート モジュールのアンケート レポート (ER による実行) メニュー項目を選択して、構成された ER フォーマットが実行します。

  2. ダイアログボックスの フォーマットのマッピング フィールドで、アンケート レポート を選択します。

  3. OKを選択します。

  4. [ 電子レポート パラメーター ] ダイアログ ボックスの [ レコードを含める ] クイック タブで、 SBCCrsExam アンケートのみを含むようにフィルターを設定します。

  5. [ OK] を 選択してフィルターを確認します。

  6. OK を選択してレポートを実行します。

    電子レポートのダイアログ ボックスで、選択基準を指定します。

  7. 生成されたレポートを確認します。

設計済みの ER ソリューションを調整する

開発したデータ プロバイダー クラスを使用して、実行中の ER 形式の詳細にアクセスするように、構成された ER ソリューションを変更します。 また、生成されたレポートにこの ER 形式の名前を入力します。

モデルのマッピングを修正する

データ ソースを追加してデータ コントラクト オブジェクトにアクセスする

  1. 組織管理> 電子申告>コンフィギュレーションに移動します。
  2. [構成] の構成ツリーで、[アンケート モデル] を展開し、[アンケート マッピング] を選択します。
  3. デザイナーを選択して、モデルからデータソースへのマッピングを開きます。
  4. デザーナーを選択して、モデル マッピング デザイナーで選択したデザイナーを開きます。
  5. Model マッピング デザイナーで、データソースの種類ペインのDynamics 365 for Operations\Objectを選択します。
  6. データ ソース ペインで、ルートの追加を選択します。
  7. ダイアログ ボックスの 名前 フィールドに、QuestionnairesErReportService クラスのソースコードで定義されている RunTimeParameters を入力します。
  8. [ クラス ] フィールドに、前にコーディング した QuestionnairesErReportContract を入力します。
  9. OKを選択します。
  10. RunTimeParameters を展開します。

追加されたデータソースは、実行中の ER フォーマット マッピングのレコード ID に関する情報を提供します。

ER モデル マッピング デザイナーで追加されたデータ ソースのスクリーンショット。

データ ソースを追加して ER フォーマット マッピング レコードにアクセスする

ER フォーマットのマッピング レコードへのアクセスに使用するデータソースを追加して、選択したモデル マッピングの編集を続行します。

  1. モデル マッピング デザイナーデータ ソースの種類ペインで、Dynamics 365 for Operations\テーブルレコードを選択します。
  2. データ ソース ペインで、ルートの追加を選択します。
  3. ダイアログ ボックスで、名前 フィールドに ER1 と入力します。
  4. テーブルフィールドに、ERFormatMappingTableと入力します。
  5. OKを選択します。

データ ソースを追加して実行中の ER フォーマットのフォーマット マッピング レコードにアクセスする

実行中の ER フォーマットのフォーマット マッピング レコードへのアクセスに使用するデータソースを追加して、選択したモデルマッピングの編集を続行します。

  1. モデル マッピング デザイナーの [データ ソースの種類] ウィンドウで、[関数]\[計算フィールド] を選択します。
  2. データ ソース ペインで、ルートの追加を選択します。
  3. ダイアログ ボックスで、名前 フィールドに ER2 と入力します。
  4. 式の編集を選択します。
  5. 式エディターで、 フィールドに、FIRSTORNULL (FILTER(ER1, ER1.RecId = RunTimeParameters.parmFormatMapping)) と入力します。
  6. 保存 を選択し、式エディターを閉じます。
  7. OKを選択します。

データ モデル内で実行中の ER フォーマットの名前を入力する

選択したモデルマッピングの編集を続けて、実行中の ER フォーマットの名前がデータモデルに入力されるようにします。

  1. モデル マッピング デザイナーの [データ モデル] ペインで、[ExecutionContext] を展開し、[ExecutionContext\FormatName] を選択します。
  2. データモデル ペインで、編集 を選択してデータ モデル フィールドのデータ バインドを構成します。
  3. 式エディターで、フィールドに FIRSTORNULL (ER2.'>Relations'.Format).Name と入力します。
  4. 保存 を選択し、式エディターを閉じます。

FormatNameフィールドを使用したため、構成されたモデル マッピングでは、実行中にこのモデル マッピングの呼び出しを行う ER フォーマットの名前を公開するようになります。

ER モデル マッピング デザイナーで追加されたデータ ソースのメソッドにデータ モデル フィールドをバインドするスクリーンショット。

モデル マッピングを完了する

  1. モデル マッピング デザイナーで、[保存] を選択します。
  2. ページを閉じます。
  3. モデル マッピング ページを閉じます。
  4. [構成] の構成ツリーで、アンケート マッピングの構成が選択されていることを確認します。 続いて、バージョン クイック タブで、状態が 下書き となっている構成のバージョンを選択します。
  5. ステータスの変更>完了 を選択します。

この構成のバージョン 1.2 の状態が 下書き から完了に変 わります。 バージョン 1.2 を変更することはできません。 このバージョンには、構成済みのモデル マッピングが含まれており、その他の ER の構成の基礎として使用できます。 この構成のバージョン 1.3 が作成され、状態が下書きになります。 このバージョンを編集して、アンケート モデル マッピングを調整することができます。

フォーマットを変更する

構成された ER 形式を変更して、ER 形式の実行時に生成されるレポートのフッターにその名前が表示されるようにすることができます。

新たなフォーマット要素を追加する

  1. 組織管理> 電子申告>コンフィギュレーションに移動します。
  2. [構成] の構成ツリーで、[アンケート モデル] を展開し、[アンケート レポート] を選択します。
  3. デザイナー をクリックします。
  4. [書式] デザイナーで、[レポート] ルート アイテムを選択します。
  5. 追加を選択して、 選択されたルート項目のレポートに新しいネストされたフォーマット要素を追加します。
  6. Excel\Footer を選択します。
  7. 名前フィールドに、フッターと入力します。
  8. レポート\フッター を選択し、続いて追加 を選択します。
  9. テキスト\文字列を選択します。

追加されたフォーマット要素をバインドする

  1. 書式デザイナーの [マッピング] タブの書式ツリーで、アクティブな Footer\String 要素の [数式の編集] を選択します。
  2. 数式エディターの [ 数式 ] フィールドに「 CONCATENATE ("\&C\&10", FORMAT("Generated by'\%1' ER solution", model.ExecutionContext.FormatName))」と入力します。
  3. 保存 を選択し、式エディターを閉じます。
  4. 保存 を選択します。

Footer \String 要素を使用して、生成されたレポートのフッターにその名前が入力されるように、構成された形式を変更しました。

ER 操作デザイナーで、フッター形式要素を構成済みの形式に追加するスクリーンショット。

フォーマットの設計を完了する

  1. 書式デザイナーを閉じます。
  2. [構成] の構成ツリーで、アンケート レポートの構成が選択されていることを確認します。 続いて、バージョン クイック タブで、状態が 下書き となっている構成のバージョンを選択します。
  3. ステータスの変更>完了 を選択します。

この構成のバージョン 1.2 の状態が 下書き から完了に変 わります。 バージョン 1.2 は変更できなくなりました。 このバージョンには、構成済みのフォーマットが含まれており、その他の ER の構成の基礎として使用することができます。 この構成のバージョン 1.3 が作成され、状態が下書きになります。 このバージョンを編集して、アンケート レポートを調整することができます。

アプリケーションからフォーマットを実行する

  1. アンケート>設計>アンケート レポート (ER による実行) に移動します。
  2. ダイアログボックスの フォーマットのマッピング フィールドで、アンケート レポート を選択します。
  3. OKを選択します。
  4. [ER パラメーター] ダイアログ ボックスの [レコードを含める] クイック タブで、SBCCrsExam アンケートのみを含むようにフィルターを設定します。
  5. [ OK] を 選択してフィルターを確認します。
  6. OK を選択してレポートを実行します。
  7. 生成されたレポートをExcel形式で確認します。

生成されたレポートのフッターには、生成に使用された ER 形式の名前が含まれています。

Excel形式で生成されたレポート。

ER からフォーマットを実行する

  1. 組織管理> 電子申告>コンフィギュレーションに移動します。
  2. [構成] の構成ツリーで、[アンケート モデル] を展開し、[アンケート レポート] を選択します。
  3. アクション ウィンドウで、実行を選択します。
  4. [ 電子レポート パラメーター ] ダイアログ ボックスの [ レコードを含める ] クイック タブで、 SBCCrsExam アンケートのみを含むようにフィルターを設定します。
  5. [ OK] を 選択してフィルターを確認します。
  6. OK を選択してレポートを実行します。
  7. 生成されたレポートをExcel形式で確認します。

生成されたレポートのフッターには、生成に使用された ER 形式の名前は含まれません。これは、ER 形式で呼び出されたときに、実行中のモデル マッピングがデータ コントラクト オブジェクトを渡さなかったためです。

オン スクリーン プレビューに使用するフォーマットの出力先を構成する

  1. 組織管理>電子申告>電子申告の送信先の順に移動します。
  2. 電子レポートの宛先で、構成されたアンケート レポート ER 形式の宛先レコードを追加します。
  3. [ファイル変換先] クイック タブで、構成されたアンケート レポート ER 形式のルート要素として追加したレポート形式コンポーネントの画面変換先を設定します。
  4. PDF 変換設定ファストタブで、送信先の構成を行い、レポートの印刷の向きを横方向に設定したPDF フォーマットへと変換します。

[電子レポートの宛先] ページで ER 形式のカスタム画面変換先を構成するスクリーンショット。

アプリケーションからフォーマットを実行して、PDF ドキュメントでプレビューする

  1. アンケート>設計>アンケート レポート (ER による実行) に移動します。

  2. ダイアログボックスの フォーマットのマッピング フィールドで、アンケート レポート を選択します。

  3. OKを選択します。

  4. [ 電子レポート パラメーター ] ダイアログ ボックスの [ レコードを含める ] クイック タブで、 SBCCrsExam アンケートのみを含むようにフィルターを設定します。

  5. [ OK] を 選択してフィルターを確認します。

    宛先 クイック タブで、出力 フィールドが 画面 に設定されていることを確認します。 構成済の送信先を変更する場合は、変更を選択し ます。

    設定された送信先を変更できる ER レポートのランタイム ダイアログ ボックスです。

  6. OK を選択してレポートを実行します。

  7. PDF フォーマットで生成されたレポートを確認してください。

    PDF フォーマットで生成されたレポートの画面上でのプレビューです。

その他のリソース