SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

組み合わせの達人

組み合わせの達人-売上管理アプリケーションにグラフ機能を組み合わせる

第4回 ComponentOne Studioを利用して簡単な売上管理アプリケーションを作成する

  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード ソースコード (2.1 MB)

FlexGridのデータをC1Chartに連携してみる

 FlexGridとC1Chartのデータ連携は、先ほど作成したSalesDataListクラスにて行います。メイン画面のFlexGridに表示されているデータから、SalesDataクラスを生成し、配列としてSalesDataListクラスを生成します。

 データクラスの受け渡しには、プロパティを利用します。今回追加したFormクラスにプロパティを追加します。

public SalesDataList SalesDataList
{
    get { return this._salesDataList; }
    set { this._salesDataList = value; }
}

 プロパティでセットされた値をBindingSourceのデータソースとして設定することで、グラフの表示を行うことができます。

this.bindingSource1.DataSource = "データの配列";
連携元のFlexGrid画面
連携元のFlexGrid画面
連携先のChart画面
連携先のChart画面

表示するデータを変更する

 ここで、一工夫してみましょう。先ほどまでの場合は、FlexGridから渡されたすべてのデータがグラフに表示されている状態になっていました。

 そこで、カテゴリを選択し表示するデータを絞り込むようにします。データの表示は先ほどと同様に、BindingSourceのデータソースを設定するだけになります。設定するデータソースは、表示させたいものになるように加工しておきます。

public SalesDataList SelectCategory(string code)
{
	SalesDataList value = new SalesDataList();

	List<SalesData> list = this.FindAll(delegate(SalesData data)
    {
    	return (data.CategoryCode == code);
    });

	value.AddRange(list);
    return value;
}

 データクラスには、カテゴリを指定して絞り込みが行えるメソッドを追加します。

this.bindingSource1.DataSource = this._salesDataList.SelectCategory("指定するカテゴリコード");
カテゴリ変更後の画面表示
カテゴリ変更後の画面表示

 どうでしょうか? カテゴリごとのデータが表示されたかと思います。

表示されているグラフの種類を変更してみる

 C1Chartコントロールには、たくさんの種類のグラフが用意されています。ここでは、複数用意されている種類の中から、折れ線グラフと棒グラフを表示してみましょう。

 画面のRibbonTabにComboBoxを追加し、グラフの種類を選択できるようにします。ここで折れ線グラフ、棒グラフを切り替えられるようにします。

 グラフの種類を指定するにはChartTypeプロパティを指定します。設定値はChart2DTypeEnum列挙体で指定を行い、折れ線グラフの場合はChart2DTypeEnum.XYPlotを、棒グラフの場合はChart2DTypeEnum.Barを設定します。

 棒グラフを選択したのが下の画像です。

棒グラフ
棒グラフ

 プロパティの設定だけで、再描画まで実行されることが確認できると思います。

次のページ
C1Chartコントロールに表示されたグラフを印刷してみる

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
組み合わせの達人連載記事一覧

もっと読む

この記事の著者

高山 昌悟(タカヤマ ショウゴ)

今までは主に、Windowsアプリケーションの開発を行ってきました。最近はWebアプリケーションの開発を行っています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3477 2009/03/05 16:10

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング