Spread Windows Forms 7.0 Product Documentation
Creating a Hierarchical Display Manually
Support Options
Spread Windows Forms 7.0 Product Documentation > Developer's Guide > Managing Data Binding > Customizing Data Binding > Creating a Hierarchical Display Manually

Glossary Item Box

You can manually (programmatically) create a hierarchical display as shown in the example below. The parent is the higher level of the hierarchy and the child is the lower level.

Example

This example creates two custom SheetView objects: one as the parent and one as the child. In the Parent sheet, we override the ChildRelationCount property and GetChildView and FindChildView methods. The ChildRelationCount is how many relations between this object and children objects (for the most part this is one). The GetChildView is used to get the child sheet. It calls FindChildView to see if the sheet is already created. If it is, then use that one. If it is not, create a new child sheet. The SheetName property of the child SheetView determines which parent row it is assigned to. Then override the ParentRowIndex property in the child SheetView to return the row number that child is assigned to. The SheetName in creating this sheet determines this number.

VB Copy Code
...
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
     FpSpread1.Sheets.Clear()
     FpSpread1.Sheets.Add(New customSheet)
     FpSpread1.Sheets(0).RowCount = 10
     Dim i As Integer
     For i = 0 To 9
          If i <> 1 Then
               FpSpread1.Sheets(0).SetRowExpandable(i, False)
          End If
     Next i
End Sub
End Class

Public Class customSheet
Inherits FarPoint.Win.Spread.SheetView

  Public Overrides ReadOnly Property ChildRelationCount() As Integer
     Get
          Return 1
     End Get
  End Property

  Public Overrides Function GetChildView(ByVal row As Integer, ByVal relationIndex As Integer) As FarPoint.Win.Spread.SheetView
     Dim child As customChild = CType(FindChildView(row, 0),      customChild)
     If Not (child Is Nothing) Then Return child
          child = New customChild
          child.RowCount = 5
          child.Parent = Me
          child.SheetName = row.ToString
          ChildViews.Add(child)
     Return child
  End Function
  Public Overrides Function FindChildView(ByVal row As Integer, ByVal relationIndex As Integer) As FarPoint.Win.Spread.SheetView
     Dim id As String = row.ToString
     Dim View As FarPoint.Win.Spread.SheetView
     For Each View In ChildViews
          If View.SheetName = id Then Return View
     Next
     Return Nothing
  End Function
End Class

Public Class customChild
Inherits FarPoint.Win.Spread.SheetView
   Public Overrides ReadOnly Property ParentRowIndex() As Integer        Get             Return CInt(SheetName)
      End Get
   End Property
End Class

© 2002-2014 ComponentOne, a division of GrapeCity. All Rights Reserved.