SHOEISHA iD

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

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

ComponentZine(ComponentOne)

多彩な表現形式でデータをグリッド表示するASP.NETアプリケーションの作成

C1GridViewコントロールを使った高機能なWebアプリケーションの作成

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

グループ集計機能の設定

 データのグループ化ができましたので、グループごとに集計を出すように設定してみましょう。これは、各列のAggregateプロパティを使用します。

 設定はとても簡単で、プロパティビルダーを起動し集計したい列のAggregateプロパティに、次の値(Aggregate列挙体のメンバ)を設定します。

メンバ名 説明
None 集計の計算や表示を行いません。
Count データ数のカウント。
Sum 数値の合計。
Average 数値の平均。
Min 最小値(数値、文字列、または日付)。
Max 最大値(数値、文字列、または日付)。
Std 標準偏差(サンプル計算式、n-1を使用)。
StdPop 標準偏差(人口計算式、nを使用)。
Var 分散(サンプル計算式、n-1を使用)。
VarPop 分散(人口計算式、nを使用)。
Custom カスタム値(グリッドにonClientGroupAggregateイベントのスルーをさせる)。

  ここでは、次の列に集計を設定してみます。

列名 集計内容
作付け面積(ha) Sum
収穫量(t) Sum
出荷量(t) Average

 プロジェクトを実行し「地方名」でグループ化すると、3つの列に集計結果が表示されます。

「地方名」でグループ化すると3つの列に集計結果が表示される
「地方名」でグループ化すると3つの列に集計結果が表示される

  せっかくですから、この機能もアプリケーション実行時に選択できるようにしてみましょう。

 CheckBoxコントロールの下にPanelコントロールを配置し、その中にRadioButtonコントロールを3つ配置します。それぞれグループ名を「gp1」に設定しAutoPostBackプロパティをTrueにして、「RadioButton3」のみ「Checked」プロパティを「True」にします。

 また、イベントハンドラ「CheckedChanged」を、それぞれのRadioButtonコントロールに作成します。

 コードからグループ集計機能を実行するには、AggregateプロパティにAggregate列挙体のメンバを設定するだけです。集計解除は、「None」を設定します。

 設定する列は数値のある列で、「作付面積(ha)」から「出荷量(対前年%)」までの6列に対し、合計と平均、集計なしの3つのオプションを切り替えて実行できるようにします。

Visual Basic
Protected Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
    Dim i As Integer
    If RadioButton1.Checked = True Then
        For i = 4 To 9
            CType(C1GridView1.Columns(i), C1.Web.Wijmo.Controls.C1GridView.C1Field).Aggregate _
                = C1.Web.Wijmo.Controls.C1GridView.Aggregate.Sum
        Next
    End If
End Sub

Protected Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton2.CheckedChanged
    Dim i As Integer
    If RadioButton2.Checked = True Then
        For i = 4 To 9
            CType(C1GridView1.Columns(i), C1.Web.Wijmo.Controls.C1GridView.C1Field).Aggregate _
                = C1.Web.Wijmo.Controls.C1GridView.Aggregate.Average
        Next
    End If
End Sub

Protected Sub RadioButton3_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton3.CheckedChanged
    Dim i As Integer
    If RadioButton3.Checked = True Then
        For i = 4 To 9
            CType(C1GridView1.Columns(i), C1.Web.Wijmo.Controls.C1GridView.C1Field).Aggregate _
                = C1.Web.Wijmo.Controls.C1GridView.Aggregate.None
        Next
    End If
End Sub
C#
protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
    int i;
    if(RadioButton1.Checked == true)
    {
        for(i=4; i<=9; i++)
        {
            ((C1.Web.Wijmo.Controls.C1GridView.C1Field)C1GridView1.Columns[i]).Aggregate 
                = C1.Web.Wijmo.Controls.C1GridView.Aggregate.Sum;
        }
    }
}

protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
{
    int i;
    if (RadioButton2.Checked == true)
    {
        for (i = 4; i <= 9; i++)
        {
            ((C1.Web.Wijmo.Controls.C1GridView.C1Field)C1GridView1.Columns[i]).Aggregate
                = C1.Web.Wijmo.Controls.C1GridView.Aggregate.Average;
        }
    }
}

protected void RadioButton3_CheckedChanged(object sender, EventArgs e)
{
    int i;
    if (RadioButton3.Checked == true)
    {
        for (i = 4; i <= 9; i++)
        {
            ((C1.Web.Wijmo.Controls.C1GridView.C1Field)C1GridView1.Columns[i]).Aggregate
                = C1.Web.Wijmo.Controls.C1GridView.Aggregate.None;
        }
    }
}
RadioButtonコントロールで2種類の集計を切り替えて実行できるようにする
RadioButtonコントロールで2種類の集計を切り替えて実行できるようにする

ページングの設定

 これまでのグリッドは、すべての行が1ページに表示されており、スクロールしてデータを閲覧するようになっています。

 例えば20件のデータごとにページわけしたい、といった場合にはページング機能を利用します。ページング機能を設定するには、「AllowPaging」プロパティを「True」に設定します。これで、ページ番号でページを移動する機能が設定されます。

ページ番号でページを移動する機能が設定
ページ番号でページを移動する機能が設定

 ただし、デフォルトではデータを10件ずつ表示する設定になっていますので、20件ずつ表示するように変更します。これは、「PageSize」プロパティを使います。この値を「20」にすると、20件ずつ表示するようになります。

 また、プロパティウィンドウの「PagerSettings」プロパティを展開すると、ナビゲーションボタンの各設定ができるようになっています。

 ナビゲーションボタンの変更は「Mode」プロパティで行います。デフォルトでは「Numeric」でページ番号だけのナビゲーションになっていますので、これを「NumericFirstLast」にします。

 これで、ページ番号の前後に「先頭・最後」に移動するボタンが表示されます。

ページングのプロパティ設定
ページングのプロパティ設定
1ページ20件のデータ表示になり、ナビゲーションボタンも変更された
1ページ20件のデータ表示になり、ナビゲーションボタンも変更された

まとめ

 C1GridViewコントロールは、データベースのデータをほとんどコードを書くことなくグリッドに連結できます。さらに、単純な表組だけではなく、多彩な機能を持ったグリッドに仕上げ、Webページで利用することができます。

 また、グリッドの設計もプロパティの設定から可能となっており、データベースのフロントエンドを作成する作業も容易です。

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7085 2013/04/18 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング