フィールドの書式設定を使用して、データをグループ化することができます。製品の連結リストがあり、1年以内に注文されたすべての項目をまとめてグループ化するとします。実行時に[フィールドの設定]ダイアログボックスを使用するか、コードを使用できます。この例では、製品と共にインストールされる C1Nwind.mdb に連結された C1OlapPage コントロールを使用します。
実行時にデータを年別にグループ化するには:
次の画像に、グループ化前とグループ化後のグリッドを示します。グループ化前画像では、[注文日]はグループ化されていません。グループ化後画像では、製品が購入された年別にまとめてグループ化されています。
グループ化前
グループ化後
コードでデータをグループ化するには:
コードでデータをグループ化することもできます。上の例の場合は、次のコードが使用されます。
VisualBasic |
コードのコピー
|
---|---|
Imports C1.Olap Imports System.Data.OleDb Namespace WindowsFormsApplication1 Public Partial Class Form1 Inherits Form Public Sub New() InitializeComponent() ' データを取得します Dim da = New OleDbDataAdapter("select * from invoices", GetConnectionString()) Dim dt = New DataTable() da.Fill(dt) ' OLAP ページに連結します Me.c1OlapPage1.DataSource = dt ' ビューを構築します Dim olap = Me.c1OlapPage1.OlapEngine olap.ValueFields.Add("UnitPrice") olap.RowFields.Add("OrderDate", "ProductName") ' 注文日付の書式を設定して、データをグループ化します Dim field = olap.Fields("OrderDate") field.Format = "yyyy" End Sub Private Shared Function GetConnectionString() As String Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "\ComponentOne Samples\Common" Dim conn As String = "provider=microsoft.jet.oledb.4.0;data source={0}\c1nwind.mdb;" Return String.Format(conn, path) End Function End Class End Namespace |
C# |
コードのコピー
|
---|---|
using C1.Olap; using System.Data.OleDb; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); // データを取得します var da = new OleDbDataAdapter("select * from invoices", GetConnectionString()); var dt = new DataTable(); da.Fill(dt); // OLAP ページに連結します this.c1OlapPage1.DataSource = dt; // ビューを構築します var olap = this.c1OlapPage1.OlapEngine; olap.ValueFields.Add("UnitPrice"); olap.RowFields.Add("OrderDate", "ProductName"); // 注文日付の書式を設定して、データをグループ化します var field = olap.Fields["OrderDate"]; field.Format = "yyyy"; } static string GetConnectionString() { string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + @"\ComponentOne Samples\Common"; string conn = @"provider=microsoft.jet.oledb.4.0;data source={0}\c1nwind.mdb;"; return string.Format(conn, path); } } } |
C1OlapGrid は、コードで次のメソッドを使用して、グループの詳細データを表示したり、サマリーだけを表示する機能も提供しています。
以下のコードは、これらのプロパティの設定方法を示します。
行グループを折りたたむには
VB |
コードのコピー
|
---|---|
c1OlapPage1.OlapGrid.CollapseAllRows() |
C# |
コードのコピー
|
---|---|
c1OlapPage1.OlapGrid.CollapseAllRows(); |
行グループを展開するには
VB |
コードのコピー
|
---|---|
c1OlapPage1.OlapGrid.ExpandAllRows() |
C# |
コードのコピー
|
---|---|
c1OlapPage1.OlapGrid.ExpandAllRows(); |
列グループを折りたたむ/展開するためのプロパティも、同様に設定できます。