FlexPivot for WinForms
コードによるフィールドの設定
タスク別ヘルプ > コードによるフィールドの設定

FlexPivot では、設計時にフィールドを構成できます。 実行時にユーザーインタフェースでフィールドをドラッグアンドドロップするほかに、コードでフィールドを設定することもできます。C1FlexPivot は、コードでフィールドを構成するための強力なオブジェクトモデルを提供します。フィルタを適用したり、実行時に表示されるデータの書式設定を指定することができます。

コードでフィールドを構成するには、次の手順に従います。

  1. 新しい Windows フォームアプリケーションプロジェクトを作成します。
  2. FlexPivotPage コントロールをフォームにドラッグアンドドロップします。
  3. コードビューに切り替え、次のコードを追加して NWind_ja.mdb データベースへの接続文字列を設定します。
    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}\Nwind_ja.mdb;"
        Return String.Format(conn, path)
    End Function
    
    static string GetConnectionString()
    {
        string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal) 
        + @"\ComponentOne Samples\Common";
        string conn = @"provider=microsoft.jet.oledb.4.0;data source={0}\Nwind_ja.mdb;";
        return string.Format(conn, path);
    }
    
  4.  フォームのコンストラクタに次のコードを追加して、 NWind_ja.mdb データベースからデータ(Invoices ビュー)をロードし、それを FlexPivotPage コントロールに割り当て、初期ビューを定義します。
    ' データを取得します。
    Dim da = New OleDbDataAdapter("select * from invoices", GetConnectionString())
    Dim dt = New DataTable()
    da.Fill(dt)
    
    ' FlexPivotページにバインドします。
    Me.C1FlexPivotPage1.DataSource = dt
    
    ' ビューを作成します。
    Dim fp = Me.C1FlexPivotPage1.PivotEngine
    fp.ValueFields.Add("ExtendedPrice")
    fp.RowFields.Add("OrderDate", "ProductName")
    
    // データを取得します。
    var da = new OleDbDataAdapter("select * from invoices", GetConnectionString());
    var dt = new DataTable();
    da.Fill(dt);
    
    // FlexPivotページにバインドします。
    this.c1FlexPivotPage1.DataSource = dt;
    
    // ビューを作成します。
    var fp = this.c1FlexPivotPage1.PivotEngine;
    fp.ValueFields.Add("ExtendedPrice");
    fp.RowFields.Add("OrderDate", "ProductName");
    
  5. 次のコードを使用して、ExtendedPrice フィールドと OrderDate フィールドを書式設定します。次のコードは、ExtendedPrice を通貨書式で、OrderDate を年書式で表示します。また、売上の合計ではなく平均を表示します。
    ' 注文の日付と拡張価格の書式を設定します。
    Dim field = fp.Fields("OrderDate")
    field.Format = "yyyy"
    field = fp.Fields("ExtendedPrice")
    field.Format = "c"
    
    ' 合計の代わりに平均価格を表示します。
    field = fp.Fields("ExtendedPrice")
    field.Subtotal = C1.FlexPivot.Subtotal.Average
    
    // 注文の日付と拡張価格の書式を設定します。
    var field = fp.Fields["OrderDate"];
    field.Format = "yyyy";
    field = fp.Fields["ExtendedPrice"];
    field.Format = "c";
    
    // 合計の代わりに平均価格を表示します。
    field = fp.Fields["ExtendedPrice"];
    field.Subtotal = C1.FlexPivot.Subtotal.Average;
    
           
  6. 次のコードを追加して、製品にフィルタを適用します。次のコードは、指定した製品(アメリカンクラッカー、アメリカンポーク、インドカレーパン、うす味ウインナー)をビューに表示します。       
    ' いくつかの製品のみを表示するため範囲フィルタを適用します。
    Dim filter As C1.FlexPivot.C1FlexPivotFilter = fp.Fields("ProductName").Filter
    filter.Clear()
    filter.ShowValues = "アメリカンクラッカー、アメリカンポーク、
    インドカレーパン、うす味ウインナー".Split(","c)
    
    // いくつかの製品のみを表示するため範囲フィルタを適用します。
    C1.FlexPivot.C1FlexPivotFilter filter = fp.Fields["ProductName"].Filter;
    filter.Clear();
    filter.ShowValues = "アメリカンクラッカー、アメリカンポーク、
    インドカレーパン、うす味ウインナー".Split(',');
    
  7. 次のコードを追加して、OrderDate フィールドにフィルタを適用します。次のコードは、1995 年 1 月 1 日から 1995 年 9 月 30日までの OrderDate を表示します。
    ' いくつかの日付のみを表示するため範囲フィルタを適用します。
    filter = fp.Fields("OrderDate").Filter
    filter.Clear()
    filter.Condition1.[Operator] = C1.FlexPivot.ConditionOperator.GreaterThanOrEqualTo
    filter.Condition1.Parameter = New DateTime(2014, 1, 1)
    filter.Condition2.[Operator] = C1.FlexPivot.ConditionOperator.LessThanOrEqualTo
    filter.Condition2.Parameter = New DateTime(2014, 12, 31)
    filter.AndConditions = True
    
    // いくつかの日付のみを表示するため範囲フィルタを適用します。
    filter = fp.Fields["OrderDate"].Filter;
    filter.Clear();
    filter.Condition1.Operator = C1.FlexPivot.ConditionOperator.GreaterThanOrEqualTo;
    filter.Condition1.Parameter = new DateTime(2014, 1, 1);
    filter.Condition2.Operator = C1.FlexPivot.ConditionOperator.LessThanOrEqualTo;
    filter.Condition2.Parameter = new DateTime(2014, 12, 31);
    filter.AndConditions = true;
    
  8. [F5] キーを押してアプリケーションを実行します。フォームが表示され、上のコードで設定したフィールドだけがカスタマイズビューに表示されます。