OLAP for WPF /Silverlight
データのグループ化
OLAP for WPF/Silverlight のタスク別ヘルプ > データのグループ化

フィールドの書式設定を使用して、データをグループ化することができます。製品の連結リストがあり、1年以内に注文されたすべての項目をまとめてグループ化するとします。実行時に[フィールドの設定]ダイアログボックスを使用するか、コードを使用できます。この例では、製品と共にインストールされる C1Nwind.mdb に連結された C1OlapPage コントロールを使用します。

実行時にデータを年別にグループ化するには:

  1. C1OlapPageC1OlapPanel 領域で、[OrderDate][Product]、および[Sales]フィールドを選択し、それらをグリッドビューに追加します。必要に応じて、[OLAP グリッド]タブをクリックしてグリッドを表示します。
  2. [行フィールド]内の[注文日]フィールドを右クリックし、[フィールドの設定]を選択します。[フィールドの設定]ダイアログボックスが表示されます。
  3. [フィルタ]タブで、[すべて選択]が選択されていることを確認します。
  4. [書式]タブをクリックし、[カスタム]を選択します。
  5. [カスタム書式]テキストボックスに「yyyy」と入力し、[OK]をクリックします。

次の画像に、グループ化前とグループ化後のグリッドを示します。グループ化前画像では、[注文日]はグループ化されていません。グループ化後画像では、製品が購入された年別にまとめてグループ化されています。

グループ化前

グループ化後

コードでデータをグループ化するには:

コードでデータをグループ化することもできます。上の例の場合は、次のコードが使用されます。

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 は、コードで次のメソッドを使用して、グループの詳細データを表示したり、サマリーだけを表示する機能も提供しています。

以下のコードは、これらのプロパティの設定方法を示します。

列グループを折りたたむ/展開するためのプロパティも、同様に設定できます。