elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación Visual Basic / Establecer jerarquía en controles Treeview en: 17 Mayo 2018, 04:35 am
Que tal perdón por molestar, tengo un duda, espero me puedas ayudar te adjunto el code para que lo puedas apreciar mejor.

Te comento, que uso el control treeview y lo que estoy atascado es como agrupar los datos cargados en ellos, si lo ejecutas veras como esta quedando

https://drive.google.com/open?id=..... retirado por discrección


En la carpeta hay 3 capturas de como seria, espero me apoyes

Gracias x tu tiempo
Lo primero decirte que el propósito del foro es ayudar a todos... una duda resuelta vale para otros, luego procede preguntar en el foro, no en mensajes privados. Los mensajes privados, como su nombre indica, son para mensajes que no atañe a nadie más que a los que participan dle mensaje...

Es posible exponer claramente tus dudas, sin necesidad de exponer todo tu código (si razonablemente no lo quieres exponer), si es lo que te preocupa, de hecho, puedes ver como editando 2 de dichas imágenes que mandaste junto con una sola función de carga del Treeview, basta...

Después de todo, no he podido ejecutar tu proyecto, porque yo tengo instalado el entorno de vb6 en un XP, y tu tienes referencias a librerías, no disponibles en XP.

Lo siguiente decirte, que estás usando la versión de commoncontrols de vb5 (SP2), es mejor si la actualizas por la de vb6 (SP6)...
También podría decirte que hay lugar para mucha optimización, peor ese es otro tema...

A lo que venimos...

Cuando como en tu caso cargas datos procedentes de una base de datos y por tanto a priori, desconoces si los ítems a cargar son únicos o tienen subítems, y en cuyo caso quieres que se coloquen exactamente como subítems DEL MISMO ÍTEM, lo adecuado es localizar si existe ya el ITEM, y en tal caso se coloca como 'hijo' de él...

En tu código, no solo no haces búsqueda es que ni puedes hacerla porque no asignas ninguna clave, para luego poder buscar el nodo...

Este es tu código tal cual lo tenías (modificado para eliminar tantas líneas en blanco y antecediendo las declaraciones de variables a cualquier otra sentencia (das trabajo inútil al analizador léxico y al sintáctico, declarando variables en otras partes que no sea al comienzo)).
Código
  1. Sub CARGAR_COTI_SEGUN_NOMBRE(ByVal strQuery As String)
  2.    Dim i As Long
  3.    Dim FACTORY As Node
  4.    Dim GROUP As Node
  5.    Dim ARTICULO As Node
  6.    Dim TIPO_ORDEN As String
  7.  
  8.    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
  9.    '// Conectar la Base Datos con ADO
  10.    Call ConectarBDD
  11.    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
  12.  
  13.    StrSQL = strQuery
  14.    RST.Open StrSQL, CN, adOpenStatic, adLockOptimistic, adCmdText
  15.  
  16.    Do While Not RST.EOF    
  17.        With TreeView1.Nodes
  18.            .Clear
  19.            Set FACTORY = .Add(, , , RST!NOMBRE_CLI, otFactory, 1)
  20.            For i = 1 To RST.RecordCount                
  21.                Set GROUP = .Add(FACTORY, tvwChild, , "Número: " & RST!IDCoti & " - " & "Fecha: " & RST!Fecha, otGroup, 2)                  
  22.                Set ARTICULO = .Add(GROUP, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)                                  
  23.  
  24.                RST.MoveNext
  25.                FACTORY.Expanded = True
  26.            Next i
  27.        End With
  28.    Loop
  29.  
  30.    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
  31.    '// Cerrar la base de datos y liberar la memoria
  32.    Call CerrarADO
  33.    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
  34. End Sub
  35.  

Y esta es la modificación de la función para que realice el cometido que reclamas...

Nota, que en cada ítem de 'Grupo' añadimos la clave, precisamente para luego poder buscarlo...
Y una vez encontrado (esto es, ya existe), solo se añade el artículo al grupo existente (como hijo de aquel)...
La sintaxis del método Add (nodo) es:
objeto.Add(relativa, relación, clave, texto, imagen, imagenSeleccionada)
Relativa: es una referencia al nodo bajo el cual se trabaja (clave o indice). Se usa el índice cuando la posición es fija y nunca cambia (es más rápido que buscar), se usa la clave, cuando se añaden y eliminan elementos, y por tanto varía y no tendrán nunca un puesto asegurado en un índice específico.
Relación: Indica el posicionado respecto del referenciado (relativo)... primero, último, siguiente, previo, hijo... excepto hijo, el resto es como 'hermano' del referenciado...
Clave: Un texto asociado como único para poder hacer búsquedas... Si se pone clave, y no hicieras búsqueda como hago, no podrías añadirlo, porque te diría que ya existe en la colección nodes un ítem con esa clave... en casos así, donde pueda haber claves repetidas y no interese ponerlos cmo hijos sino al mismo nivel debe omitirse la clave...
Texto: el dato textual que se mostrará en el control para ese ítem...
El resto es autoexplicativo...

Código
  1. Sub CARGAR_COTI_SEGUN_NOMBRE(ByVal strQuery As String)
  2.    Dim i As Long
  3.    Dim FACTORY As Node
  4.    Dim GROUP As Node
  5.    Dim ARTICULO As Node
  6.    Dim TIPO_ORDEN As String
  7.    Dim Key As String   ' clave del nodo que se buscara y tal vez se añadira...
  8.    Dim Existe As Node  ' nodo que se busca
  9.  
  10.    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
  11.    '// Conectar la Base Datos con ADO
  12.    Call ConectarBDD
  13.    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
  14.  
  15.    StrSQL = strQuery
  16.    RST.Open StrSQL, CN, adOpenStatic, adLockOptimistic, adCmdText
  17.  
  18.    'me.show
  19.    Do While Not RST.EOF
  20.  
  21.        With TreeView1.Nodes
  22.            .Clear
  23.            Set FACTORY = .Add(, , , RST!NOMBRE_CLI, otFactory, 1)
  24.            For i = 1 To RST.RecordCount
  25.  
  26.                Key = CStr(RST!IDCoti)  ' esta es la clave del grupo...
  27.                Set Existe = TreeView1.Nodes.Item(Key)  ' buscamos el nodo cuya clave interesa...
  28.                If Not (Existe Is Nothing) Then  ' si existe anadimos el articulo bajo el (como hijo)...
  29.                    Set ARTICULO = .Add(Existe, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)
  30.                    'ARTICULO.EnsureVisible
  31.                Else  ' Si no existe se anade el grupo (con su key) y el articulo bajo el...
  32.                    Set GROUP = .Add(FACTORY, tvwChild, Key, "Número: " & RST!IDCoti & " - " & "Fecha: " & RST!Fecha, otGroup, 2)
  33.                    'GROUP.EnsureVisible
  34.                    Set ARTICULO = .Add(GROUP, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)
  35.                    'ARTICULO.EnsureVisible
  36.                End If
  37.  
  38.                RST.MoveNext
  39.                FACTORY.Expanded = True
  40.            Next i
  41.        End With
  42.    Loop
  43.  
  44.    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
  45.    '// Cerrar la base de datos y liberar la memoria
  46.    Call CerrarADO
  47.    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
  48. End Sub
  49.  
NOTA: Para ver como van apareciendo uno a uno... 'descomenta' las línea de código comentadas...
'ARTICULO.EnsureVisible (y si la ventana aún no es visible
'me.show
OJO: Solo para verlo claro, ejecutando las líneas paso a paso (tecla de función: F8), luego lo vuelves a comentar... carga más rápido si el control se actualiza solo al final... y no con cada añadido.
12  Foros Generales / Foro Libre / Google penalizará en su buscador a webs de propaganda y fake news como RT en: 22 Noviembre 2017, 17:10 pm
Citar
...cuando se crea una noticia falsa se tienen dos objetivos: obtener visitas a través de la ignorancia de mucha gente, o intentar influenciar la opinión de la gente...

...Eric Schmidt, presidente ejecutivo de Alphabet (Google) ha afirmado que quiere frenar la propagación de estas noticias falsas, y que van a empezar a penalizar a este tipo de medios en Google. Incluso ha advertido que “no quieren tener que llegar a prohibirlos”. Entre las páginas que mencionó se encuentran Russia Today (RT) y Sputnik, que son utilizadas como propaganda rusa...

A ver si es verdad, porque supone tres retos con los que lidiar:
- Cómo localizar y cuantificar que una web aporta noticias falsas o falsificadas.
- Cómo valorar el aspecto negativo (y hacerlo correctamente en su justa medida), para penalizar a dichas webs.
- Cómo afectará esto a los usuarios del buscador. Esto es cómo resultará de efectivo...

Aunque este último punto parece de menor importancia en su eficacia, lo cierto es que es la razón de la existencia de los dos previos, luego paradójicamente es el más importante de los 3. Presumiblemente, sin que primero los dos previos sean óptimos, valorar este tercero, no tendrá mucho sentido. Luego es más importante centrarse primero en lograr que los otros dos sean óptimos antes de preocuparse de éste.

https://www.adslzone.net/2017/11/21/google-fake-news-rt-sputnik/?utm_source=related_posts&utm_medium=manual
13  Foros Generales / Foro Libre / Powerpoint y el endiosamiento inútil en: 18 Septiembre 2017, 06:48 am
No suelo abrir hilos, peor esta noticia me ha parecido adecuado compartirla...

Parece que no soy el único que entiende que el powerpoint, no es Dios (el del atículo del enlace más abajo, parece que se suma).

Es difícll encontrar algo más horripilante que alguien que ha creado un powerpoint, y que luego lo expone a todos. Parece como si el mero hecho de presentar algo en powerpoint, le confiriera certeza absoluta, verdad indiscutible y fé ciega.

He llegado a tener tanta repulsa al powerpoint, que cada vez que veo a alguien apasionado en él, me acaba pareciendo un persona similar a los de una secta, con su 'verdad absoluta e incuestionable'.

Tal como yo lo veo, un powerpoint, no debiera ser nada mejor que unos torpes trazos de tiza en la pizarra de toda la vida... exceptuando la calidad de los 'dibujos'... pero si es esto, lo que le confiere infalibilidad, apaga y vámonos... el caso es que no entiendo su fama, me parece inmerecida.
 
De hecho las presentaciones aún conteniendo imágenes son más aburridas  que un libro solo con texto. Porque parece que todo lo que ahí sale es 'extremadamente esencial', no se puede omitir nada ni cambiarlo de sitio por error... incluso eso estaría bien, si fueran 3-4 páginas... cuando van por 20 ya tiene uno dolor de cabeza y cuando alcanza las 70, aparecen náuseas... me resulta imposible soportar tanta estupidez.

https://www.xataka.com/otros/expulsemos-el-powerpoint-de-la-universidad-empeora-las-clases-a-los-alumnos-y-a-los-profesores
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines