ActiveReports for .NET 18.0J
ガントチャートの作成
ActiveReportsユーザーガイド > 概念 > ページレポート/RDLレポートの概念 > ページレポート/RDLレポートのレポートコントロール > Chart > プロット > ガントチャート > ガントチャートの作成

以下のトピックでは、ガントチャートを作成する方法を紹介します。このチャートは、アメリカ合衆国の年齢に基づいて推奨される子供の予防接種スケジュールを視覚化します。スケジュールには、許容される年齢範囲での推奨ワクチン、および接種が表示され、子供たちに対する推奨する予防接種、接種機会を逃した場合のキャッチアップ接種、およびその他のハイリスクグループが強調されています。最終的なチャートは次のようになります。

Gantt Chart

新しいレポートを作成する

デザイナアプリにて、[ファイル]メニューをクリックし、 [RDLレポート] を選択して、新しいレポートを作成します。

レポートをデータ連結しデータセットを追加する

[データソースウィザードを開く]オプションをオンにすると、新しいレポートを作成するときに[レポートデータソース]ダイアログが表示されます。このダイアログは、レポートエクスプローラで[データソース]ノードを右クリックして、[データソースの追加]のオプションを選択する時も表示されます。

データソースを追加する

  1. [レポートデータソース]ダイアログで[全般]ページを選択し、名前を「NwindDataSource」に変更します。
  2. 種類を「Json Provider」に設定します。
  3. [コンテンツ]タブに移動し、JSONデータの形式の選択を「埋め込み」に設定します。
  4. [埋め込むファイル/URLの選択、またはデータの入力]フィールドに、次のデータを入力します。

    JSONデータ

    コードのコピー
    [
     {
       "ワクチン": "B型肝炎(HepB)",
       "開始時間": 0,
       "終了時間": 1,
       "接種": "1回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "B型肝炎(HepB)",
       "開始時間": 1,
       "終了時間": 3,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "B型肝炎(HepB)",
       "開始時間": 4,
       "終了時間": 5,
       "接種": "",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "B型肝炎(HepB)",
       "開始時間": 6,
       "終了時間": 18,
       "接種": "3回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "B型肝炎(HepB)",
       "開始時間": 19,
       "終了時間": 216,
       "接種": "",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "ロタウィルス(RV)",
       "開始時間": 2,
       "終了時間": 3,
       "接種": "1回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "ロタウィルス(RV)",
       "開始時間": 4,
       "終了時間": 5,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "ロタウィルス(RV)",
       "開始時間": 6,
       "終了時間": 7,
       "接種": "3回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "ジフテリア・破傷風・無細胞百日咳(DTaP)",
       "開始時間": 2,
       "終了時間": 3,
       "接種": "1回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "ジフテリア・破傷風・無細胞百日咳(DTaP)",
       "開始時間": 4,
       "終了時間": 5,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "ジフテリア・破傷風・無細胞百日咳(DTaP)",
       "開始時間": 6,
       "終了時間": 7,
       "接種": "3回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "ジフテリア・破傷風・無細胞百日咳(DTaP)",
       "開始時間": 9,
       "終了時間": 12,
       "接種": " ",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "ジフテリア・破傷風・無細胞百日咳(DTaP)",
       "開始時間": 15,
       "終了時間": 18,
       "接種": "4回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "ジフテリア・破傷風・無細胞百日咳(DTaP)",
       "開始時間": 18.5,
       "終了時間": 48,
       "接種": " ",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "ジフテリア・破傷風・無細胞百日咳(DTaP)",
       "開始時間": 48,
       "終了時間": 84,
       "接種": "5回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "インフルエンザ菌b型(Hib)",
       "開始時間": 2,
       "終了時間": 3,
       "接種": "1回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "インフルエンザ菌b型(Hib)",
       "開始時間": 4,
       "終了時間": 5,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "インフルエンザ菌b型(Hib)",
       "開始時間": 9,
       "終了時間": 10,
       "接種": "  ",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "インフルエンザ菌b型(Hib)",
       "開始時間": 12,
       "終了時間": 16,
       "接種": "3回目または4回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "インフルエンザ菌b型(Hib)",
       "開始時間": 18,
       "終了時間": 36,
       "接種": "",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "インフルエンザ菌b型(Hib)",
       "開始時間": 48,
       "終了時間": 84,
       "接種": " ",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "インフルエンザ菌b型(Hib)",
       "開始時間": 84,
       "終了時間": 216,
       "接種": " ",
       "年齢範囲": "ハイリスクグループ"
     },
     {
       "ワクチン": "肺炎鏈球菌疫苗(PCV13)",
       "開始時間": 2,
       "終了時間": 3,
       "接種": "1回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "肺炎鏈球菌疫苗(PCV13)",
       "開始時間": 4,
       "終了時間": 5,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "肺炎鏈球菌疫苗(PCV13)",
       "開始時間": 6,
       "終了時間": 7,
       "接種": "3回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "肺炎鏈球菌疫苗(PCV13)",
       "開始時間": 9,
       "終了時間": 10,
       "接種": "  ",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "肺炎鏈球菌疫苗(PCV13)",
       "開始時間": 12,
       "終了時間": 16,
       "接種": "4回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "肺炎鏈球菌疫苗(PCV13)",
       "開始時間": 19,
       "終了時間": 84,
       "接種": "",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "肺炎鏈球菌疫苗(PCV13)",
       "開始時間": 84,
       "終了時間": 216,
       "接種": " ",
       "年齢範囲": "ハイリスクグループ"
     },
     {
       "ワクチン": "不活化ポリオワクチン(IPV)",
       "開始時間": 2,
       "終了時間": 3,
       "接種": "1回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "不活化ポリオワクチン(IPV)",
       "開始時間": 4,
       "終了時間": 5,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "不活化ポリオワクチン(IPV)",
       "開始時間": 6,
       "終了時間": 18,
       "接種": "3回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "不活化ポリオワクチン(IPV)",
       "開始時間": 18.1,
       "終了時間": 48,
       "接種": "",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "不活化ポリオワクチン(IPV)",
       "開始時間": 48,
       "終了時間": 84,
       "接種": "4回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "不活化ポリオワクチン(IPV)",
       "開始時間": 84,
       "終了時間": 204,
       "接種": "",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "インフルエンザ(IIV)",
       "開始時間": 6,
       "終了時間": 18,
       "接種": "毎年1~2回",
       "年齢範囲": "子供たち"
     },
     {
      "ワクチン": "インフルエンザ(IIV)",
      "開始時間": 18,
      "終了時間": 19,
      "接種": " ",
      "年齢範囲": "子供たち"
    },
     {
       "ワクチン": "インフルエンザ(IIV)",
       "開始時間": 19,
       "終了時間": 84,
       "接種": "毎年1~2回",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "インフルエンザ(IIV)",
       "開始時間": 96,
       "終了時間": 216,
       "接種": "毎年1回のみ",
       "年齢範囲": "子供たち"
     },
     {
      "ワクチン": "麻疹、おたふく風邪、風疹(MMR)",
      "開始時間": 6,
      "終了時間": 9,
      "接種": " ",
      "年齢範囲": "ハイリスクグループ"
    },
     {
       "ワクチン": "麻疹、おたふく風邪、風疹(MMR)",
       "開始時間": 12,
       "終了時間": 16,
       "接種": "1回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "麻疹、おたふく風邪、風疹(MMR)",
       "開始時間": 18.1,
       "終了時間": 48,
       "接種": "  ",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "麻疹、おたふく風邪、風疹(MMR)",
       "開始時間": 48,
       "終了時間": 84,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "麻疹、おたふく風邪、風疹(MMR)",
       "開始時間": 84,
       "終了時間": 216,
       "接種": "",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "水痘疫苗(VAR)",
       "開始時間": 12,
       "終了時間": 16,
       "接種": "1回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "水痘疫苗(VAR)",
       "開始時間": 18.1,
       "終了時間": 48,
       "接種": "  ",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "水痘疫苗(VAR)",
       "開始時間": 48,
       "終了時間": 84,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "水痘疫苗(VAR)",
       "開始時間": 84,
       "終了時間": 216,
       "接種": "",
       "年齢範囲": "キャッチアップ接種"
     },
     {
      "ワクチン": "A型肝炎(HepA)",
      "開始時間": 6,
      "終了時間": 9,
      "接種": "  ",
      "年齢範囲": "ハイリスクグループ"
    },
     {
       "ワクチン": "A型肝炎(HepA)",
       "開始時間": 12,
       "終了時間": 18,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "A型肝炎(HepA)",
       "開始時間": 18,
       "終了時間": 23,
       "接種": " ",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "A型肝炎(HepA)",
       "開始時間": 24,
       "終了時間": 216,
       "接種": "",
       "年齢範囲": "キャッチアップ接種"
     },
     
     {
      "ワクチン": "髄膜炎菌(MenACWY)",
      "開始時間": 2,
      "終了時間": 132,
      "接種": " ",
      "年齢範囲": "ハイリスクグループ"
    },
     {
       "ワクチン": "髄膜炎菌(MenACWY)",
       "開始時間": 132,
       "終了時間": 156,
       "接種": "1回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "髄膜炎菌(MenACWY)",
       "開始時間": 156,
       "終了時間": 180,
       "接種": "   ",
       "年齢範囲": "キャッチアップ接種"
     },
     {
       "ワクチン": "髄膜炎菌(MenACWY)",
       "開始時間": 180,
       "終了時間": 191,
       "接種": "2回目",
       "年齢範囲": "子供たち"
     },
     {
       "ワクチン": "髄膜炎菌(MenACWY)",
       "開始時間": 191,
       "終了時間": 216,
       "接種": "  ",
       "年齢範囲": "キャッチアップ接種"
     }
    ]
    

    詳細については、「JSON Provider」を参照してください。
  5. [接続文字列]タブに移動し、[データソースを確認]Validate Iconアイコンをクリックして、生成された接続文字列を確認します。
  6. [OK]をクリックして変更を保存し、[データセット]ダイアログを開きます。

データセットを追加する

  1. [データセット]ダイアログで、[全般]ページを選択し、[名前]フィールドに「Immunization」と入力します。
  2. [データセット]ダイアログの[クエリ]ページで、[クエリ]フィールドに次のクエリを入力します。
    データセットクエリ
    コードのコピー
    $.[*]
  3. クエリを検証するために、クエリボックスの横にある[データセットの検証]アイコンをクリックします。
  4. [OK]をクリックして変更を保存します。

チャートを作成する

チャートウィザードを使用して、チャートのデータ値を構成し、チャートをカスタマイズします。レポートがデータセットに接続している場合、チャートウィザードは自動的に表示されます。詳細については、「チャートウィザード」を参照してください。

  1. Chartコントロールをレポートのデザイン面にドラッグ&ドロップします。チャートウィザードが表示され、データセットとチャートの種類を選択できます。
  2. データセット名を「Immunization」に設定し、[種類の設定]を「ガント」に設定します。
  3. [次へ]をクリックします。
  4. [データ]では、新しい値を追加し、対応する集計を設定します。
    開始フィールド  終了フィールド
    =[開始時間] =[終了時間]
  5. [カテゴリ]では、以下のフィールドを設定します。
    フィールド 並べ替え
    =[ワクチン] None
  6. [サブカテゴリ]では、以下のフィールドを設定します。
    フィールド 並べ替え
    =[接種] None
  7. [次へ]をクリックして、グラフをプレビューします。
     Gantt Chart - Preview
    プレビュー画面では、チャートのパレットを変更したり、その他のカスタマイズを行うこともできます。または、以下で説明するように、ウィザードを終了してこれらのスマートパネルにアクセスできます。 

カスタマイズを設定する

グラフがデータ値で構成されたので、スマートパネルを使用して、グラフ要素をカスタマイズします。

プロット

  1. プロットの詳細設定用のスマートパネルを開くには、レポートエクスプローラで[プロット-Plot1]を右クリックし、[プロパティ設定ダイアログ]を選択します。
  2. [データ]ページに移動し、[タイプ]が「Complex」に設定されていることを確認します。
  3. [カテゴリ]ページに移動し、[対象フィールド]を削除します。
  4. [エンコード]ページに移動し、[詳細]タブで、新しい値を追加し、そのプロパティを次のように設定します。
    • 式:=[接種]
    • グループ化 > グループ:Cluster
    • 対象フィールド:=[開始時間]
    • Null値を除く:オンにします。
  5. [カラー]タブに移動し、[式]を「=[年齢範囲]」に設定します。
  6. [ラベル]ページに移動し、[全般]タブを選択し、次のプロパティを設定します。
    • テンプレート:{detailFields.value}
    • 位置:Center
    • 重なり調整:Auto
  7. [OK]をクリックして、プロットの設定を完了します。

Y軸

  1. Y軸の詳細設定用のスマートパネルを開くには、レポートエクスプローラで[Y軸 - [Plot1]]を右クリックし、[プロパティ設定ダイアログ]を選択します。
  2. [タイトル]ページに移動し、次のプロパティを設定します。
    • タイトル:年齢(月)
    • フォント > サイズ:10pt
    • パディング > 上:4pt
    • パディング > 下:4pt
  3. [レイアウト]ページに移動して、[位置]を「Far」に設定します。
  4. [ラベル]ページに移動し、[ラベルを表示する]オプションのチェックボックスをオンにし、書式を「n0」に設定します。    
  5. [外観]タブを選択し、次のプロパティを設定します。
    • フォント > サイズ:9pt
    • フォント > 色:DimGray
  6. [軸線]ページに移動し、[軸を表示する]オプションのチェックボックスをオンにし、色を「Gainsboro」に設定します。
  7. [主グリッド線]ページに移動し、[グリッド線を表示する]オプションのチェックボックスをオフにします。
  8. [スケール]ページに移動し、次のプロパティを設定します。
    • スケールタイプ:Linear
    • 最小値:0
    • 最大値:18
  9. [OK]をクリックして、Y軸の設定を完了します。

X軸

  1. X軸の詳細設定用のスマートパネルを開くには、レポートエクスプローラで[X軸 - [Plot1]]を右クリックし、[プロパティ設定ダイアログ]を選択します。
  2. [タイトル]ページに移動し、[タイトル]フィールドからテキストを削除して、グラフのX軸のタイトルを非表示にします。
  3. [レイアウト]ページに移動し、[位置] > [反転]オプションをオンにして、軸を反転して上から下に表示します。
  4. [ラベル]ページに移動し、[外観]タブを選択し、次のプロパティを設定します。
    • フォント > サイズ:9pt
    • フォント > 色:DimGray
  5. [軸線]ページに移動し、[軸を表示する]オプションのチェックボックスをオフにします。
  6. [副グリッド線]ページに移動し、[グリッド線を表示する]オプションのチェックボックスをオフにします。
  7. [主グリッド線]ページに移動し、[グリッド線を表示する]オプションのチェックボックスをオンにし、を「Gainsboro」に設定します。
  8. [OK]をクリックして、X軸の設定を完了します。

チャートパレット

  1. グラフの詳細設定用のスマートパネルを開くには、レポートエクスプローラで[Chart1]を右クリックし、[プロパティ設定ダイアログ]を選択します。
  2. [パレット]ページで、ドロップダウンから「Custom」を選択し、次の色を追加します。
    • #bfecb8
    • #9ebac4
    • #ffb1ae
  3. [OK]をクリックして、カスタムパレットの設定を完了します。

凡例-Color

  1. 凡例のスマートパネルを開くには、レポートエクスプローラーで[凡例-Color]を右クリックし、[プロパティ設定ダイアログ]を選択します。
  2. [タイトル]ページに移動し、タイトルを「推奨年齢範囲」に設定し、フォント > サイズを「12pt」に設定します。
  3. [外観]ページに移動して、次のプロパティを設定します。
    • フォント > サイズ:10pt
    • フォント > 色:DimGray
  4. [レイアウト]ページに移動して、次のプロパティを設定します。
    • 位置:Top
    • レイアウト:Horizontal
  5. [OK]をクリックして、グラフの凡例の設定を完了します。

Chart

  1. レポートエクスプローラから、Chartを選択します。
  2. [プロパティ]ウィンドウで、BarSettings > Overlapを「98%」に設定します。

ヘッダ

  1. グラフヘッダのスマートパネルを開くには、レポートエクスプローラで[ヘッダ]を右クリックし、[プロパティ設定ダイアログ]を選択します。
  2. [全般]ページに移動し、[タイトル]を「予防接種スケジュール」に設定します。
  3. [配置]ページに移動し[横方向の配置]を「Center」に、[縦方向の配置]を「Middle」に設定します。
  4. [フォント]ページに移動し、次のプロパティを設定します。
    • サイズ:20pt
    • :#3da7a8
  5. [OK]をクリックして、グラフヘッダの設定を完了します。
    必要に応じて、グラフのサイズを変更することができます。
       Gantt Chart at Design Time        
  6. チャートの構成とカスタマイズが完了したら、レポートをプレビューします。