FarPoint.Win.Spread
Cancel Property
See Also  Example
FarPoint.Win.Spread Assembly > FarPoint.Win.Spread Namespace > GroupingEventArgs Class : Cancel Property


Determines whether to cancel the grouping.

Syntax

Visual Basic (Declaration) 
Public Property Cancel As Boolean
Visual Basic (Usage)Copy Code
Dim instance As GroupingEventArgs
Dim value As Boolean
 
instance.Cancel = value
 
value = instance.Cancel
C# 
public bool Cancel {get; set;}

Return Value

Boolean: true if grouping event is cancelled; false otherwise

Example

C#Copy Code
[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);
           }
     }
}
Visual BasicCopy Code
[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