OLAP for WinForms
データのグループ化
タスク別ヘルプ > データのグループ化

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

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

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

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

グループ化前

グループ化後

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

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

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);
        }
    }
}