GrapeCity ActiveReports for .NET 12.0J
動的に作成したJSONデータソースの使用

JSONデータプロバイダは、動的に作成したデータソースをサポートしています。JSONデータ用の接続文字列を式として入力し、パラメータを使用して値を渡すことで動的にデータソースを設定することができます。

動的に作成したデータソースを設定する手順は以下のとおりです。

メモ:

          ページレポートの新規作成

  1. ActiveReports for .NET 12.0J デザイナアプリケーションを開きます。
  2. [ファイル]メニューから[新規作成]を選択し、表示される[新規レポートの作成]ウィンドウで、[ページレポート]テンプレートを選択します。
  3. [OK]をクリックします。

    パラメータの追加
  4. [レポートエクスプローラ]で、[パラメータ]ノードを右クリックして[パラメータの追加]オプションを選択します。
  5. 表示される[レポート−パラメータ]ダイアログの[全般]タブで、パラメータの[名前]「UserId」に変更し、[OK]をクリックします。

    データソースの追加
  6. [レポートエクスプローラ][データソース]ノードを右クリックして[データソースの追加]オプションを選択するか、[追加](+)ボタンから[データソース]を選択します。
  7. 表示される[レポートデータソース]ダイアログの[全般]ページでデータソースの名前(デフォルトでは「DataSource1」)を入力します。この名前は、[データソース]の子ノードとして[レポートエクスプローラ]に表示されます。
  8. [種類]セクションで、ドロップダウンから「Json Provider」を選択します。
  9. [接続]セクションの[コンテンツ]タブで、ラジオボタンから「式」を選択します。
  10. [式の入力]フィールドに次のような式を入力します。

    ="jsondoc=http://jsonplaceholder.typicode.com/comments/" & Parameters!UserId.Value & ";schemadata=
    { ""$schema"": ""http://json-schema.org/draft-04/schema#"", ""type"": ""object"",
    ""properties"": { ""postId"": { ""type"": ""integer"" },
    ""id"": { ""type"": ""integer"" },
    ""name"": { ""type"": ""string"" },
    ""email"": { ""type"": ""string"" },
    ""body"": { ""type"": ""string"" } },
    ""required"": [ ""postId"", ""id"", ""name"", ""email"", ""body"" ] }}"

    データセットの追加
  11. [レポートエクスプローラ]で、上記で追加したデータソースの名前(デフォルトでは「DataSource1」)を右クリックして、[データセットの追加]オプションを選択するか、[追加](+)ボタンから[データセット]を選択します。
  12. 表示される[データセット]ダイアログの[全般]ページで、データセットの名前(デフォルトでは「DataSet1」)を入力します。
  13. [クエリ]ページで、[指定方法][Text]を選択し、[クエリ]ボックスに「$」と入力します。
  14. [フィールド]ページで、[追加](+)ボタンを使用してフィールドを4つ作成し、次のような[名前][値]をそれぞれ入力します。
    名前: postId; 値: postId
    名前: email; 値: email
    名前: name; 値: name
    名前: body; 値: body
  15. [OK]をクリックします。

    レポートレイアウトの作成
  16. ツールボックスから各コントロールをレポートのデザイナ面上にドラッグします。
  17. 各コントロールの値をデータセットフィールドの値に設定します。

    レポートの表示
  18. [プレビュー]タブをクリックします。
  19. いずれかのUserIdパラメータ(例: "1")を[ReportParameter1]の下のボックスに入力し、[レポートを表示]をクリックします。

 

 


Copyright © 2003 GrapeCity inc. All rights reserved.