none
PRESENTAR SOLO NODOS PRINCIPALES EN UN TREEVIEW RRS feed

  • Pregunta

  • Estimados amigos del Foro, desde ya muchas gracias por su valiosa ayuda, tengo una consulta que realizarles.....
    PREGUNTA.- Tengo un Treeview que trae datos de una tabla utilizando un dataset de forma recursica..... Bien el treeview al buscar la empresa se presenta en la pantalla pero como es un plan de cuentas contables no alcanza la pantalla si solo se presentan de la siguinete forma:
    1.
    1.1.
    1.1.1.
    1.1.1.01.
    1.1.1.01.01.
    1.1.1.01.01.001
    1.1.1.01.01.002
    1.1.1.01.01.003
    1.1.1.01.01.004
    1.1.1.01.01.005
    1.1.1.01.01.006
    1.1.1.01.01.007
    1.1.1.01.01.008
    1.1.1.01.01.009
    1.1.1.01.02.
    1.1.1.01.02.001
    1.1.1.01.02.002
    1.1.1.01.02.003
    1.1.1.01.02.004
    1.1.1.01.02.005
    1.1.1.01.02.006
    1.1.1.01.02.007
    1.1.1.02.
    1.1.1.02.01.
    1.1.1.02.01.001
    1.1.1.02.01.002
    1.1.1.02.01.003
    1.1.1.02.01.004
    1.1.2.
    1.1.2.01.
    1.1.2.01.01.
    1.1.2.01.01.001
    1.1.2.01.01.003
    1.1.2.01.01.004
    1.1.2.01.01.005
    1.1.2.01.01.009
    1.1.2.01.02.

    Nunca llega a presentarse todo el plan de cuentas..... mi consulta es como hago para que solo aparescan los nodos principales, es decir solo los nodos padres de esta manera
    +1.
    +2.
    +3.
    +4.
    +5.
    +6.
    +7.
    +8.

    Para cuando de clcik en el + se abran los subnodos que contiene cada cuenta y asi estos contendran otras subcuentas
    la programacion del treeview es la siguiente

     Protected Sub fnCargarTreeView()
            Dim obj As New Contabilidad.Negocio.Contabilidad.Negocio.ClsPlanNegocio()
            dataSetPlan = obj.fnDatosNodo(idEmpresa)
            trvPlan.Nodes.Clear()
            CrearNodosDelPadre(0, Nothing)
            trvPlan.ExpandAll()

        End Sub
       

     Private Sub CrearNodosDelPadre(ByVal indicePadre As String, ByVal nodePadre As TreeNode)
            Dim dataViewHijos As DataView
            ' Crear un DataView con los Nodos que dependen del Nodo padre pasado como parámetro.
            dataViewHijos = New DataView(dataSetPlan.Tables(0))
            dataViewHijos.RowFilter = dataSetPlan.Tables(0).Columns("PLANCUENTA_MAYORIZA").ColumnName & " = '" & indicePadre.ToString & "'"
            ' Agregar al TreeView los nodos Hijos que se han obtenido en el DataView.
            For Each dataRowCurrent As DataRowView In dataViewHijos
                Dim nuevoNodo As New TreeNode
                nuevoNodo.Text = dataRowCurrent("PLANCUENTA_NUMERO").ToString().Trim()
                'nuevoNodo.ToolTip = dataRowCurrent("PLANCUENTA_NUMERO").ToString().Trim()
                'nuevoNodo.Value = dataRowCurrent("PLANCUENTA_ID").ToString().Trim()
                ' si el parámetro nodoPadre es nulo es porque es la primera llamada, son los Nodos del primer nivel que no dependen de otro nodo.
                If nodePadre Is Nothing Then
                    trvPlan.Nodes.Add(nuevoNodo)
                Else
                    ' se añade el nuevo nodo al nodo padre.
                    nodePadre.ChildNodes.Add(nuevoNodo)
                End If
                ' Llamada recurrente al mismo método para agregar los Hijos del Nodo recién agregado.
                'CrearNodosDelPadre(Int16.Parse(dataRowCurrent("PLANCUENTA_ID").ToString()), nuevoNodo)
                CrearNodosDelPadre(dataRowCurrent("PLANCUENTA_NUMERO").ToString(), nuevoNodo)

            Next
        End Sub

    lunes, 18 de febrero de 2008 22:33

Respuestas