Как отобразить данные из хранимой процедуры в Infragistics WinTree Control? - PullRequest
0 голосов
/ 20 января 2020

Моя первая попытка использования инфраструктуры управления деревьями. У меня есть хранимая процедура, которая возвращает 4 столбца. Я полагаю, что родительские / дочерние отношения получают меня, когда из хранимой процедуры возвращается только набор результатов. Столбцы: Area, REQ, UserID, Picks. Столбцы area и REQ могут возвращаться более чем в одну строку. Пример данных может выглядеть следующим образом.

enter image description here

Я пытаюсь заставить первый дисплей UltraTree показывать по одной строке для Area и REQ. Если в области было более одного пользователя, то рядом с областью сохранения будет знак «+», который можно расширить. Это проблема, с которой я столкнулся. Элемент управления показывает все строки. Я помещаю образец кода ниже. Может ли кто-нибудь указать мне правильный путь к выполнению sh this.

Imports System.Data.SqlClient

    Imports Infragistics.Win.UltraWinTree
    Imports Infragistics.Win

    Public Class Form1

Private ds As New DataSet
Private dt As New DataTable
Private da As New SqlDataAdapter
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim dt As Date = "01/16/2020"
    Dim cmd As New SqlCommand

    Using sqlcon As New SqlConnection("User ID=beans;password=garbanzo;Initial Catalog=mydata;Data Source=myDatabase")
        Try
            sqlcon.Open()
        Catch ex As Exception

        End Try

        With cmd
            .Connection = sqlcon
            .CommandType = CommandType.StoredProcedure
            .CommandText = "prdatarpt.spPicksByUserInArea"
            .Parameters.Clear()
            .Parameters.AddWithValue("@DelDate", dt)
            da.SelectCommand = cmd
            da.Fill(ds, "Areas")
        End With


    End Using
    Try
        GetData()
        With Me.UT1
            .ViewStyle = UltraWinTree.ViewStyle.Default
            ' .ViewStyle = UltraWinTree.ViewStyle.Grid
            .ColumnSettings.AutoFitColumns = AutoFitColumns.ResizeAllColumns
            .ColumnSettings.ShowBandNodes = ShowBandNodes.OnlyForSiblingBands
            .SetDataBinding(ds, "Areas")
        End With
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try




End Sub

Private Function GetData() As Integer
    Dim theProject As DataTable = ds.Tables.Add("Pickareas")
    theProject.Columns.Add("Area", GetType(String))
    theProject.Columns.Add("REQ", GetType(Integer))
    theProject.Columns.Add("User", GetType(String))
    theProject.Columns.Add("Picks", GetType(Integer))

    theProject.Rows.Add(New Object())

    Dim theUsers As DataTable = ds.Tables.Add("Users")
    theUsers.Columns.Add("Area", GetType(String))
    theUsers.Columns.Add("USer", GetType(String))
    theUsers.Columns.Add("Pick", GetType(Integer))


End Function


Private Sub ultraTree1_ColumnSetGenerated(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinTree.ColumnSetGeneratedEventArgs) Handles UT1.ColumnSetGenerated



    If e.ColumnSet.Key = "Areas" Then
        e.ColumnSet.NodeTextColumn = e.ColumnSet.Columns("UserID")
    End If

    If e.ColumnSet.Key = "Area" Then
        For Each _col As UltraWinTree.UltraTreeNodeColumn In e.ColumnSet.Columns
            _col.Visible = False
        Next

        e.ColumnSet.Columns("Area").Visible = True
        e.ColumnSet.Columns("REQ").Visible = True

        e.ColumnSet.NodeTextColumn = e.ColumnSet.Columns("UserID")
    End If
End Sub



Private Sub UT1_InitializeDataNode(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinTree.InitializeDataNodeEventArgs) Handles UT1.InitializeDataNode
    If e.Node.Parent Is Nothing Then
        e.Node.Expanded = True
    End If
End Sub



Private Sub uT1_AfterDataNodesCollectionPopulated(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinTree.AfterDataNodesCollectionPopulatedEventArgs) Handles UT1.AfterDataNodesCollectionPopulated
    Dim column As UltraTreeNodeColumn
    For Each column In e.Nodes.ColumnSetResolved.Columns
        column.PerformAutoResize()
    Next
End Sub

End Class

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...