分层遍历数据
代码
''' <summary>
''' 获取用户团队名单
''' 按层遍历用户团队名单
''' </summary>
''' <param name="用户ID信息"></param>
''' <remarks></remarks>
Private Function 获取用户团队名单(ByVal 用户ID信息 As String) As Array
Dim 用户团队名单(1, 0) As String
Dim 层数 As Integer = 1
用户团队名单(0, 0) = "0"
用户团队名单(1, 0) = 用户ID信息
If IsDBNull(用户ID信息) Then
Return 用户团队名单
End If
Dim cur As Integer = 0
Dim last As Integer = 1
While (cur < 用户团队名单.GetLength(1))
'新的一层访问开始,重新定位last与当前最后一个节点的下一个位置
last = 用户团队名单.GetLength(1)
While (cur < last)
Dim 被推荐人DataTableView As New DataView(用户信息DataTable)
If 用户团队名单(0, cur) = CStr(层数 - 1) Then
'访问节点数据
被推荐人DataTableView.RowFilter = "推广员编号='" & 用户团队名单(1, cur) & "'"
If 被推荐人DataTableView.Count > 0 Then
For Each MyDataRowView As DataRowView In 被推荐人DataTableView
'动态获取团队成员信息
ReDim Preserve 用户团队名单(1, 用户团队名单.GetLength(1))
用户团队名单(0, 用户团队名单.GetLength(1) - 1) = CStr(层数)
用户团队名单(1, 用户团队名单.GetLength(1) - 1) = CStr(MyDataRowView("用户ID"))
Next
End If
End If
cur = cur + 1
End While
层数 = 层数 + 1
End While
Return 用户团队名单
End Function
''' 获取用户团队名单
''' 按层遍历用户团队名单
''' </summary>
''' <param name="用户ID信息"></param>
''' <remarks></remarks>
Private Function 获取用户团队名单(ByVal 用户ID信息 As String) As Array
Dim 用户团队名单(1, 0) As String
Dim 层数 As Integer = 1
用户团队名单(0, 0) = "0"
用户团队名单(1, 0) = 用户ID信息
If IsDBNull(用户ID信息) Then
Return 用户团队名单
End If
Dim cur As Integer = 0
Dim last As Integer = 1
While (cur < 用户团队名单.GetLength(1))
'新的一层访问开始,重新定位last与当前最后一个节点的下一个位置
last = 用户团队名单.GetLength(1)
While (cur < last)
Dim 被推荐人DataTableView As New DataView(用户信息DataTable)
If 用户团队名单(0, cur) = CStr(层数 - 1) Then
'访问节点数据
被推荐人DataTableView.RowFilter = "推广员编号='" & 用户团队名单(1, cur) & "'"
If 被推荐人DataTableView.Count > 0 Then
For Each MyDataRowView As DataRowView In 被推荐人DataTableView
'动态获取团队成员信息
ReDim Preserve 用户团队名单(1, 用户团队名单.GetLength(1))
用户团队名单(0, 用户团队名单.GetLength(1) - 1) = CStr(层数)
用户团队名单(1, 用户团队名单.GetLength(1) - 1) = CStr(MyDataRowView("用户ID"))
Next
End If
End If
cur = cur + 1
End While
层数 = 层数 + 1
End While
Return 用户团队名单
End Function