コードにより、グループ化を実行するには、データモデルからグループデータモデルオブジェクトを取得し、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プロパティを設定します。