MESCIUS SPREAD for ASP.NET 10.0J
コードによるグループ化

グループデータモデルオブジェクトを使用して、コードによるグループ化およびその解除を行うことができます。グループデータモデルオブジェクトは、GroupDataModel クラスを使用して生成し、SheetView クラスDataModel プロパティから参照されます。

グループ化の実行

コードにより、グループ化を実行するには、データモデルからグループデータモデルオブジェクトを取得し、GroupDataModel クラスのGroup メソッドを実行します。また、このときデータの並べ替え順を設定するSortInfo クラスを作成し、Group メソッドのパラメータに指定します。

次のサンプルコードは、ボタンのクリックでグループ化を実行します。

protected void Button1_Click(object sender, EventArgs e)
{
    // クライアント側の変更を確定します
    FpSpread1.SaveChanges();

    // グループ化を行います
    FarPoint.Web.Spread.Model.GroupDataModel gm = new FarPoint.Web.Spread.Model.GroupDataModel(FpSpread1.ActiveSheetView.DataModel);
    FarPoint.Web.Spread.SortInfo[] sort = new FarPoint.Web.Spread.SortInfo[1];
    sort[0] = new FarPoint.Web.Spread.SortInfo(1, true);
    gm.Group(sort);
    FpSpread1.ActiveSheetView.DataModel = gm; 
}
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' クライアント側の変更を確定します
    FpSpread1.SaveChanges()

    ' グループ化を行います
    Dim gm As New FarPoint.Web.Spread.Model.GroupDataModel(FpSpread1.ActiveSheetView.DataModel)
    Dim sort(0) As FarPoint.Web.Spread.SortInfo
    sort(0) = New FarPoint.Web.Spread.SortInfo(1, True)
    gm.Group(sort)
    FpSpread1.ActiveSheetView.DataModel = gm
End Sub
グループ化の解除

グループデータモデルのGroupDataModel クラスTargetModel プロパティを使用して、グループ化されたデータモデルをオリジナルのデータモデルに戻すことでグループ化を解除できます。

次のサンプルコードは、ボタンのクリックによりグループ化を解除します。なお、この方法はユーザー操作により実行されたグループに対しても有効です。

protected void Button1_Click(object sender, EventArgs e)
{
    // クライアント側の変更を確定します
    FpSpread1.SaveChanges();

    // グループ化を解除します
    FarPoint.Web.Spread.Model.GroupDataModel gm;
    gm = (FarPoint.Web.Spread.Model.GroupDataModel)FpSpread1.ActiveSheetView.DataModel;
    FpSpread1.ActiveSheetView.DataModel = gm.TargetModel; 
}
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' クライアント側の変更を確定します
    FpSpread1.SaveChanges()

    ' グループ化を解除します
    Dim gm As FarPoint.Web.Spread.Model.GroupDataModel
    gm = CType(FpSpread1.ActiveSheetView.DataModel, FarPoint.Web.Spread.Model.GroupDataModel)
    FpSpread1.ActiveSheetView.DataModel = gm.TargetModel
End Sub

シートに対してグループ化を有効にすると、このシート(スプレッドシートコンポーネント)に対して個別のターゲットグループデータモデルが使用可能になります。このグループデータモデルはフラットな構造であり、階層は含まれません。これにはグループヘッダのほか、グループ化固有の他の表示データが含まれます。このモデルの下位は、行データが格納されるターゲットデータモデルです。

グループ化は、独自の比較基準を指定してカスタマイズできます。 たとえば、年に関する情報を保持する列の場合は、10年単位のカスタムグループを作成できます。 Groupingイベントの発生時には、独自のIComparer(「MyComparer」などと名前を設定)を渡すことができます。グループヘッダに表示される内容を確認するには、このグループのTextプロパティを設定します。

 

関連トピック

 

 


© MESCIUS inc. All rights reserved.