Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Validar treeview con visual basic

Estas en el tema de Validar treeview con visual basic en el foro de Visual Basic clásico en Foros del Web. TENGO EL SIGUIENTE CODIGO Código: Private Sub trv_proyectos_NodeClick(ByVal Node As MSComctlLib.Node) Dim primera_letra As String Dim Clave_proy As String Dim Clave_acc As String primera_letra = ...
  #1 (permalink)  
Antiguo 12/09/2011, 07:28
Avatar de yamiblancoc  
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 12 años, 8 meses
Puntos: 4
Sonrisa Validar treeview con visual basic

TENGO EL SIGUIENTE CODIGO

Código:
 Private Sub trv_proyectos_NodeClick(ByVal Node As MSComctlLib.Node)
   Dim primera_letra As String
   Dim Clave_proy As String
   Dim Clave_acc As String
   primera_letra = Left(Node.Key, 1)
   Clave_proy = Right(Node.Key, Len(Node.Key) - 1)
   
   Dim rs_proy As New ADODB.Recordset
   Dim rs_acc As New ADODB.Recordset
   Dim rs_ace As New ADODB.Recordset
   
   Dim obj_proyecto As New Proy_nvo
   Dim obj_ace As New ac_ace
   Dim obj_ac As New acciones_centralizadas
      
   Dim clave_ac As String
   Dim clave_ace As String
   
     
   Dim rs_centro As New ADODB.Recordset
   
   Dim kl As Long
      
   Dim SQL As String
      
   Select Case primera_letra
   
          Case "a"
              '(Proyectos)
              
              opt_opc(0).Value = True
                            
              lbl_proy_ac_cod = Clave_proy
              
              Call carga_unidades(Clave_proy)
                     
              Set rs_proy = obj_proyecto.Consultar_Proy_COD(Clave_proy)
              
              If Not rs_proy.EOF Then
                lbl_proy_ac_nombre = rs_proy!proy_denominacion
              End If
              
              'Pbx_proy.Visible = True
              'Pbx_ac.Visible = False
              
          Case "b"
          
               opt_opc(0).Value = True
          
               Dim arr_codigos() As String
               Dim rs_a_p As New ADODB.Recordset
              
              'Obten el codigo del proyecto, y el codigo de la acción
                arr_codigos = Split(Node.Key, "§")
                Clave_acc = Right(arr_codigos(0), Len(arr_codigos(0)) - 1)
                Clave_proy = Right(arr_codigos(1), Len(arr_codigos(1)) - 1)
                Call carga_unidades_accion(Clave_proy, Clave_acc)
                
                Set rs_proy = obj_proyecto.Consultar_Proy_COD(Clave_proy)
              
                If Not rs_proy.EOF Then
                    lbl_proy_ac_nombre = rs_proy!proy_denominacion
                End If
                                
              'ahora coloca los datos en el Frame de acciones:
                lbl_proy_ac_cod.Caption = Clave_proy
                lbl_ace_cod.Caption = Clave_acc
                
                Set rs_a_p = obj_ace.Consulta_Datos_Acciones_Proy(Trim(Clave_proy), CInt(Trim(Clave_acc)))
                
                If Not rs_a_p.EOF Then
                    lbl_ace_nombre.Caption = rs_a_p!acc_nombre
                End If
                
                'Pbx_proy.Visible = True
                'Pbx_ac.Visible = False
                
           Case "f"
                'Clave_proy contiene la clave de la acción centralizada tambien
                                               
                lbl_proy_ac_cod.Caption = Clave_proy
                
                opt_opc(1).Value = True
                
                Set rs_acc = obj_ac.consulta_descripcion(Clave_proy, an_o_actual)
                          
                If Not rs_acc.EOF Then
                    lbl_proy_ac_nombre.Caption = rs_acc!ac_den
                    
                     SQL = "SELECT Distinct(a.id_centro),b.Nombrecorto FROM SIPREFII_AC_centro a, SIPREFII_Centros b WHERE a.id_centro=b.ID AND a.ac_cod='" & Trim(Clave_proy) & "' AND a.POA=" & an_o_actual
                     Set rs_centro = Consulta_general(SQL, cn)
                           
                           
                     kl = 0
                           
                     ReDim arr_centro_ac_id(rs_centro.RecordCount)
                           
                     While Not rs_centro.EOF
                       cmb_unidad_eje.AddItem (rs_centro!NOMBRECORTO)
                       arr_centro_ac_id(kl) = Trim(rs_centro!ID_centro)
                       kl = kl + 1
                       rs_centro.MoveNext
                    Wend
                    
                 End If
                              
                    
           Case "g"
               
                opt_opc(1).Value = True
                    
                Dim arr_claves() As String
                                                
                arr_claves = Split(Node.Key, "§")
                
                'separa las claves, en la ultima posicion esta la jerarquia mayor
                
                lbl_proy_ac_cod.Caption = Right(arr_claves(1), Len(arr_claves(1)) - 1)
                lbl_ace_cod.Caption = Right(arr_claves(0), Len(arr_claves(0)) - 1)
                  
                Set rs_ace = obj_ace.consulta_datos_ae(Trim(lbl_proy_ac_cod), CInt(Trim(lbl_ace_cod)), an_o_actual)
                         
                                
                'coloca el nombre de las acciones especificas relacionadas con las
                'centralizadas
                If Not rs_ace.EOF Then
                   lbl_ace_nombre = rs_ace!ace_den
                   'Call carga_unidades_AC(Trim(lbl_ac_cod))
                End If
                                
                Set rs_acc = obj_ac.consulta_descripcion(Trim(lbl_proy_ac_cod.Caption), an_o_actual)
                                     
                cmb_unidad_eje.Clear
                'coloca la descripción de la accion centralizada
                
                If Not rs_acc.EOF Then
                    lbl_proy_ac_nombre.Caption = rs_acc!ac_den
                    'ingresa los centros en el combo
                    'Set rs_centro = obj_ac.consulta_centros_ac(an_o_actual, Trim(lbl_ac_cod.Caption))
                    
                    SQL = "SELECT Distinct(a.id_centro),b.Nombrecorto FROM SIPREFII_AC_centro a, SIPREFII_Centros b WHERE a.id_centro=b.ID AND a.ac_cod='" & Trim(lbl_proy_ac_cod.Caption) & "' AND a.POA=" & an_o_actual
                    Set rs_centro = Consulta_general(SQL, cn)
                           
                    kl = 0
                    
                    ReDim arr_centro_ac_id(rs_centro.RecordCount)
                           
                    While Not rs_centro.EOF
                      cmb_unidad_eje.AddItem (rs_centro!NOMBRECORTO)
                      arr_centro_ac_id(kl) = Trim(rs_centro!ID_centro)
                      kl = kl + 1
                      rs_centro.MoveNext
                    Wend
                    
                End If
                                
                                            
            
                                
                    
    End Select
   
End Sub
AHORA MI PREGUNTA ES... NECESITO QUE AL SELECCIONAR UNA OPCION NO SE PUEDA SELECCIONAR MAS NINGUN OTRO, OSEA QUE NO ME DEJE SELECCIONAR OTRA OPCION HASTA QUE CREE UNA NUEVA CONSULTA.

PODRA ALGUIEN AYUDARME!!!

GRACIAS
  #2 (permalink)  
Antiguo 15/09/2011, 15:10
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Validar treeview con visual basic

Y si al final del CASE activas la opcion ENABLED=FALSE?

Código vb:
Ver original
  1. trv_proyectos.Enabled=False

Y lo reactivas poniendolo en TRUE
  #3 (permalink)  
Antiguo 15/09/2011, 15:14
Avatar de yamiblancoc  
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: Validar treeview con visual basic

hola.... gracias ya lo pude resolver pero tuve que hacer lo siguientee
Código:
Public Sub llena_arbol_p()

    'elimina el nodo actual
    trv_proyectos.Nodes.Clear
    
    'crea el nodo
  'nodo principal
   trv_proyectos.Nodes.Add , , "xmain", an_o_actual
   
  'Primero consulta los proyectos
   Dim rs_proy As New ADODB.Recordset
   Dim obj_proy As New Proy_nvo
   Dim rs_a_p As New ADODB.Recordset
   Dim rs_metas As New ADODB.Recordset
   
   Set rs_proy = obj_proy.Consultar_Proy_POA(an_o_actual)
   Dim clave_p As String
   Dim clave_ae As String
   Dim Clave_meta As String
        
   trv_proyectos.Nodes.Add "xmain", tvwChild, "P_P_P", "PROYECTO", 1
        
   While Not rs_proy.EOF
      
      clave_p = "a" & Trim(rs_proy!proy_cod)
         '***MODIFICADO POR YAMILETH BLANCO CONDICION PARA COLOCAR SOLO EL PROYECTO SELECCIONADO***
         
      If clave_p = "a" & lbl_proy_ac_cod Then
       
      trv_proyectos.Nodes.Add "P_P_P", tvwChild, clave_p, corta_cadena(rs_proy!proy_denominacion), 1
       
      
      'Consulta las acciones por proyecto
      Set rs_a_p = obj_proy.Consulta_Acciones_Proy(Trim(rs_proy!proy_cod))
        While Not rs_a_p.EOF
          clave_ae = "b" & Trim(rs_a_p!acc_cod) & "§" & clave_p
          trv_proyectos.Nodes.Add clave_p, tvwChild, clave_ae, corta_cadena(rs_a_p!acc_nombre), 3
            Set rs_metas = obj_proy.Consulta_Metas_Proy(Trim(rs_proy!proy_cod), Trim(rs_a_p!acc_cod))
               While Not rs_metas.EOF
                 Clave_meta = "m" & Trim(rs_metas!meta_cod) & "§" & clave_ae
                 trv_proyectos.Nodes.Add clave_ae, tvwChild, Clave_meta, corta_cadena(rs_metas!meta_nombre), 4
                 rs_metas.MoveNext
               Wend
          rs_a_p.MoveNext
        Wend
    
      
      End If
      rs_proy.MoveNext
   Wend
   
     'expande el nodo principal
   trv_proyectos.Nodes.Item(1).Expanded = True
   End Sub
   
   '***MODIFICADO POR YAMILETH BLANCO PARA BORRAR EL TREEVIEW ACTUAL Y SOLO CARGAR LAS ACCIONES CENTRALIZADAS***
   
   Public Sub llena_arbol_a()
   
   'elimina el nodo actual
   trv_proyectos.Nodes.Clear
   
  trv_proyectos.Nodes.Add , , "xmain", an_o_actual
   
  'Primero consulta los proyectos
   Dim rs_proy As New ADODB.Recordset
   Dim obj_proy As New Proy_nvo
   Dim rs_a_p As New ADODB.Recordset
   Dim rs_metas As New ADODB.Recordset
   
   Set rs_proy = obj_proy.Consultar_Proy_POA(an_o_actual)
   Dim clave_p As String
   Dim clave_ae As String
   Dim Clave_meta As String
   
   
   Dim rs_ac As New ADODB.Recordset
   Dim obj_ac As New acciones_centralizadas
   Dim clave_a As String
   Dim clave_ace As String
   
   Dim rs_ace As New ADODB.Recordset
   Dim obj_ace As New ac_ace
   
   
   'Consulta las acciones centralizadas
   trv_proyectos.Nodes.Add "xmain", tvwChild, "A_A_A", "ACCIONES CENTRALIZADAS", 2
      
   Set rs_ac = obj_ac.consulta_acciones(an_o_actual)
      
   While Not rs_ac.EOF
     clave_a = "f" & Trim(rs_ac!ac_cod)
     
     '***MODIFICADO POR YAMILETH BLANCO PARA QUE LLAME SOLO LA ACCION QUE SE SELECCIONO***
     
     If clave_a = "f" & lbl_proy_ac_cod Then
     
     trv_proyectos.Nodes.Add "A_A_A", tvwChild, clave_a, corta_cadena(rs_ac!ac_den), 1
     
     Set rs_ace = obj_ace.consulta_ac_acciones_e_POA(rs_ac!ac_cod, an_o_actual)
       
       While Not rs_ace.EOF
         clave_ace = "g" & rs_ace!ace_cod & "§" & clave_a
         trv_proyectos.Nodes.Add clave_a, tvwChild, clave_ace, corta_cadena(rs_ace!ace_den), 3
         rs_ace.MoveNext
       Wend
         
         End If
         
     rs_ac.MoveNext
   Wend
   
  'expande el nodo principal
   trv_proyectos.Nodes.Item(1).Expanded = True
   
End Sub

Etiquetas: basic, sql, treeview, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:36.