Spread Windows Forms 13.0 Product Documentation
FarPoint.Win.Spread Assembly / FarPoint.Win.Spread Namespace / GroupingEventArgs Class / Cancel Property
Example


In This Topic
    Cancel Property (GroupingEventArgs)
    In This Topic
    Determines whether to cancel the grouping.
    Syntax
    'Declaration
     
    Public Property Cancel As Boolean
    'Usage
     
    Dim instance As GroupingEventArgs
    Dim value As Boolean
     
    instance.Cancel = value
     
    value = instance.Cancel
    public bool Cancel {get; set;}

    Property Value

    Boolean: true if grouping event is cancelled; false otherwise
    Example
    [Serializable()]
    public class MyGroupComparer1 : IComparer
    {
          private bool birthDate = true;
    
          public MyGroupComparer1(bool bd)
          {
                birthDate = bd;
          }
    
          public int Compare(object x1, object y1)
          {
                int x;
                int y;
                x = 0;
                y = 0;
                if (birthDate)
                {
                      if ((x1) is DateTime)
                      {
                            x = ((DateTime)(x1)).Year % 10;
                            x = ((DateTime)(x1)).Year - x;
                      }
                      if ((y1) is DateTime)
                      {
                            y = ((DateTime)(y1)).Year % 10;
                            y = ((DateTime)(y1)).Year - y;
                      }
                }
                else
                {
                      if ((x1) is DateTime)
                      {
                            x = ((DateTime)(x1)).Year;
                      }
                      if ((y1) is DateTime)
                      {
                            y = ((DateTime)(y1)).Year;
                      }
                }
                if (x == y)
                {
                      return 0;
                }
                else if (x > y)
                {
                      return 1;
                }
                else
                {
                      return -1;
                }
          }
    }
    
    fpSpread1.AllowColumnMove = true;
    fpSpread1.ActiveSheet.GroupBarInfo.Visible = true;
    fpSpread1.ActiveSheet.AllowGroup = true
    
    FarPoint.Win.Spread.GroupInfo gi = new FarPoint.Win.Spread.GroupInfo();
    gi.BackColor = Color.Yellow 
    
    FarPoint.Win.Spread.GroupInfo gi2 = new FarPoint.Win.Spread.GroupInfo();
    gi2.BackColor = Color.Green
    
    FarPoint.Win.Spread.GroupInfoCollection gic = new FarPoint.Win.Spread.GroupInfoCollection();
    gic.AddRange(new FarPoint.Win.Spread.GroupInfo[] { gi, gi2 });
    
    fpSpread1.ActiveSheet.GroupInfos.Add(gic[0]);
    
    void fpSpread1Grouping(object sender, GroupingEventArgs e)
    {
          int n = e.SortInfo.Length;
          if ((n == 0))
          {
                e.Cancel = true;
          }
          int c = e.SortInfo[n - 1].Index;
          FarPoint.Win.Spread.FpSpread ss = (FarPoint.Win.Spread.FpSpread)sender;
          FarPoint.Win.Spread.Model.DefaultSheetDataModel dm;
          if ((ss.ActiveSheet.Models.Data) is FarPoint.Win.Spread.Model.DefaultSheetDataModel)
          {
                dm = (FarPoint.Win.Spread.Model.DefaultSheetDataModel)ss.ActiveSheet.Models.Data;
          }
          else
          {
                dm = (FarPoint.Win.Spread.Model.DefaultSheetDataModel)((FarPoint.Win.Spread.Model.GroupDataModel)ss.ActiveSheet.Models.Data).TargetModel;
          }
    
          c = dm.GetDataColumnFromModelColumn(c);
          if (dm.GetDataView().Table.Columns[c].DataType.Equals(typeof(DateTime)))
          {
                if ((dm.GetDataView().Table.Columns[c].Caption.IndexOf("Birth") >= 0))
                {
                      e.GroupComparer = new MyGroupComparer1(true);
                }
                else
                {
                      e.GroupComparer = new MyGroupComparer1(false);
                }
          }
    }
    
    [Serializable()] 
    Public Class MyGroupComparer
     Implements IComparer
    
     Private birthDate As Boolean = True
     Public Sub New(ByVal bd As Boolean)
      birthDate = bd
     End Sub
    
     Public Function Compare(ByVal x1 As Object, ByVal y1 As Object) As Integer Implements System.Collections.IComparer.Compare
    
      Dim x, y As Integer
      x = 0
      y = 0
    
      If birthDate Then
       If TypeOf (x1) Is DateTime Then
        x = CType(x1, DateTime).Year Mod 10
        x = CType(x1, DateTime).Year - x
       End If
       If TypeOf (y1) Is DateTime Then
        y = CType(y1, DateTime).Year Mod 10
        y = CType(y1, DateTime).Year - y
       End If
      Else
       If TypeOf (x1) Is DateTime Then
        x = CType(x1, DateTime).Year
       End If
       If TypeOf (y1) Is DateTime Then
        y = CType(y1, DateTime).Year
       End If
      End If
    
      If x = y Then
       Return 0
      ElseIf x > y Then
       Return 1
      Else
       Return -1
      End If
     End Function
    
    End Class
    
    FpSpread1.AllowColumnMove = True
    FpSpread1.ActiveSheet.GroupBarInfo.Visible = True
    FpSpread1.ActiveSheet.AllowGroup = True
    
    Dim gi As New FarPoint.Win.Spread.GroupInfo
    gi.BackColor = Color.Yellow
    
    Dim gi2 As New FarPoint.Win.Spread.GroupInfo
    gi2.BackColor = Color.Green
    
    Dim gic As New FarPoint.Win.Spread.GroupInfoCollection()
    gic.AddRange(New FarPoint.Win.Spread.GroupInfo() {gi, gi2})
    
    FpSpread1.ActiveSheet.GroupInfos.Add(gic.Item(0))
    
    Private Sub FpSpread1Grouping(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.GroupingEventArgs) Handles FpSpread1.Grouping
          Dim n As Integer = e.SortInfo.Length
          If n = 0 Then
                e.Cancel = True
          End If
          
          Dim c As Integer = e.SortInfo(n - 1).Index  'model index
          Dim ss As FarPoint.Win.Spread.FpSpread = sender
          Dim dm As FarPoint.Win.Spread.Model.DefaultSheetDataModel
          If TypeOf (ss.ActiveSheet.Models.Data) Is FarPoint.Win.Spread.Model.DefaultSheetDataModel Then
                dm = ss.ActiveSheet.Models.Data
          Else
                dm = CType(ss.ActiveSheet.Models.Data, FarPoint.Win.Spread.Model.GroupDataModel).TargetModel
          End If
          
          c = dm.GetDataColumnFromModelColumn(c)
          If dm.GetDataView().Table.Columns(c).DataType.Equals(GetType(DateTime)) Then
                If dm.GetDataView().Table.Columns(c).Caption.IndexOf("Birth") >= 0 Then
                      e.GroupComparer = New MyGroupComparer(True)
                Else
                      e.GroupComparer = New MyGroupComparer(False)
                End If
          End If
    End Sub
    See Also