グループ集計機能の設定
データのグループ化ができましたので、グループごとに集計を出すように設定してみましょう。これは、各列の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つの列に集計結果が表示されます。
② せっかくですから、この機能もアプリケーション実行時に選択できるようにしてみましょう。
CheckBoxコントロールの下にPanelコントロールを配置し、その中にRadioButtonコントロールを3つ配置します。それぞれグループ名を「gp1」に設定しAutoPostBackプロパティをTrueにして、「RadioButton3」のみ「Checked」プロパティを「True」にします。
また、イベントハンドラ「CheckedChanged」を、それぞれのRadioButtonコントロールに作成します。
コードからグループ集計機能を実行するには、AggregateプロパティにAggregate列挙体のメンバを設定するだけです。集計解除は、「None」を設定します。
設定する列は数値のある列で、「作付面積(ha)」から「出荷量(対前年%)」までの6列に対し、合計と平均、集計なしの3つのオプションを切り替えて実行できるようにします。
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
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; } } }
ページングの設定
これまでのグリッドは、すべての行が1ページに表示されており、スクロールしてデータを閲覧するようになっています。
例えば20件のデータごとにページわけしたい、といった場合にはページング機能を利用します。ページング機能を設定するには、「AllowPaging」プロパティを「True」に設定します。これで、ページ番号でページを移動する機能が設定されます。
ただし、デフォルトではデータを10件ずつ表示する設定になっていますので、20件ずつ表示するように変更します。これは、「PageSize」プロパティを使います。この値を「20」にすると、20件ずつ表示するようになります。
また、プロパティウィンドウの「PagerSettings」プロパティを展開すると、ナビゲーションボタンの各設定ができるようになっています。
ナビゲーションボタンの変更は「Mode」プロパティで行います。デフォルトでは「Numeric」でページ番号だけのナビゲーションになっていますので、これを「NumericFirstLast」にします。
これで、ページ番号の前後に「先頭・最後」に移動するボタンが表示されます。
まとめ
C1GridViewコントロールは、データベースのデータをほとんどコードを書くことなくグリッドに連結できます。さらに、単純な表組だけではなく、多彩な機能を持ったグリッドに仕上げ、Webページで利用することができます。
また、グリッドの設計もプロパティの設定から可能となっており、データベースのフロントエンドを作成する作業も容易です。