
16/11/2009, 08:04
|
| | Fecha de Ingreso: octubre-2009
Mensajes: 63
Antigüedad: 15 años, 4 meses Puntos: 0 | |
Se repite Nodo en TreeView Estimados:
Estoy trabajando en vb.net con sqlServer 2000 y cargo el treeView con este codigo sin ningun problema, Lo que pasa es que cuando lo cargo
se repite el nodo padre,
Ejemplo:
En mi base de datos tengo un menu que tiene 2 formularios asociados,
deberia mostrarme
.............MENU
.................formulario 1
.................formulartio2
y me muestra
.............MENU
.................formulario 1
.................formulartio2
.............MENU
.................formulario 1
.................formulartio2
este es el codigo de mi TreeView,
COMO LO HAGO PARA QUE NO SE REPITA EL NODO???????????
'CARGANDO EL TREEVIEW CON EL INICIO DEL FORMULARIO
' crear conexión
Dim cadena As String
cadena = "Data Source = BRAVO; Initial Catalog = dbmultiusuario; Integrated Security=SSPI; Trusted_Connection=false; user id = glopez ; Password = lopez"
Dim cnn As New SqlConnection(cadena)
Dim variable As String
variable = Me.TVFormulario.Text
' crear los DataAdapter
Dim oDAMenu As New SqlDataAdapter("select m.idmenu, f.codigo_form FROM FORMULARIO f, SISTEMA s, MENU m WHERE (s.idsistema = f.idsistema) and (m.idsistema = s.idsistema) and f.idsistema = '" & Me.TxtCodigoSistemaFormulario.Text & "'", cnn)
' crear conjunto de datos
Dim oDataSet As New DataSet
' utilizar los adaptadores para llenar el dataset con las tabla
oDAMenu.Fill(oDataSet, "MENU")
'oDAFormulario.Fill(oDataSet, "FORMULARIOS")
' defino variables del tipo DataTable
Dim oTablaMenu As New DataTable
'Dim oTablaFormulario As DataTable
' asigno a las variables los datos de las tablas del DataSet
oTablaMenu = oDataSet.Tables(0)
'oTablaFormulario = oDataSet.Tables("FORMULARIOS")
Dim oVista As DataView
' lleno la vista con el contenido de la Tabla MENU
'oVista = oDataSet.Tables("MENU").DefaultView
oVista = oTablaMenu.DefaultView
' deshabilita la actualización en pantalla del control TreeView
TVFormulario.BeginUpdate()
' defino variable del tipo DataRow
'Dim Registro As DataRow
'Declarando el Nodo
Dim nodo As New TreeNode
' creo un nodo raiz (el nombre Country, puede ser cualquier texto como Raíz, Root, etc.)
nodo = TVFormulario.Nodes.Add("Sistema")
'For Each Registro In oTablaMenu.Rows
For Each Registro As DataRow In oTablaMenu.Rows
' agrego el nodo en el segundo nivel
nodo = TVFormulario.Nodes(0).Nodes.Add(Registro("IDMENU") .Trim())
' si no hay un nodo raiz, se usaría la siguiente línea
'nodo = TVFormulario.Nodes.Add(Trim(Registro("CARGA")))
' realizo un filtro dentro de la vista
oVista.RowFilter = "IDMENU = '" & Registro("IDMENU") + "'"
' ciclo para recorrer la vista previamente filtrada
Dim a As Integer
For a = 0 To oVista.Count - 1
' agrego el nodo en el tercer nivel
nodo.Nodes.Add(Trim(oVista.Item(a).Row("CODIGO_FOR M")))
Next
'Para que no se Repita los Nodos Pricipales
' expando todos los nodos de árbol secundario
nodo.ExpandAll()
Next
' habilita la actualización en pantalla del control TreeView
TVFormulario.EndUpdate()
' modifico la propiedad AllowDrop a True para poder realizar Drag and Drop
TVFormulario.AllowDrop = True
' modifico la propiedad Sorted a True para que los nodos estén ordenados
TVFormulario.Sorted = True
SALUDOS |