Seleccionando elementos arbolados


([N1] wmejiaro) #1

Estimados amigos:

Dado una estructura:
Nivel 1 //Tabla maestra A
—Nivel 11 //Tabla plural B de A
—Nivel 12
-----Nivel 121 //Tabla plural C de B
-----Nivel 122
Como hago para presentarlo y seleccionar un registro por ejemplo el ultimo (-----Nivel 122) y quede así:
Nivel 1
—Nivel 12
-----Nivel 122
Gracias de antemano


([N1] wikan) #2

Se supone que es una tabla arbolada no?
O los plurales son tablas independientes?

Si es una tabla arbolada,
Cargar lista->TABLA
Ordenar: CODIGO
Seleccionar registro por posición-> sysListSize


([N1] wmejiaro) #3

Gracias por responder amigo Wikan un gráfico vale mas de mil palabras, anexo la imagen de lo que quiero conseguir, por el problema de tener que colocar el código en cada alta si es una tabla arbolada es que utilizo tablas normales, esto lo voy a utilizar para añadir elementos y también para seleccionar mas de un elemento que luego serán eliminados, para la presentación de los datos si tendría que utilizar una tabla arbolada en memoria seleccionar los elementos que quedarán o serán eliminados y guardarlos en forma de arbol que podría ser en un campo objeto texto



([N1] wmejiaro) #4

Cómo puedo hacer para que una lista arbolada se presente como lo hace en el visor pero que me permita seleccionar varios elementos y no uno solo y luego procesarlos?


([N1] wikan) #5

Muestra la lista con un VTreeWidget, así tienes control total sobre el control.

El visor arbolado no te permite multiselección.


([N1] wmejiaro) #6

Listo ya veo el árbol bien, pero como hago para que se pueda seleccionar los ítems con multiseleccion


([N1] wmejiaro) #7

Encontré esto:
menu.selectionBehavior.SelectItems = 1;
menu.selectionMode.MultiSelection = 2;

Estará bien la sintaxis?
porque no tira error y no permite hacer la selección, o falta algo?


([N1] wikan) #8

Es un visor arbolado o lo montaste sobre un VTreeWidget??


([N1] wmejiaro) #9

Es sobre un control Tree Widget basado en el ejemplo de http://velneo.es/control-formulario-treewidget/


([N4] Infortic) #10

Debe de ser:

menu.selectionBehavior = 1;
menu.selectionMode = 2;

o en todo caso:

menu.selectionBehavior = SelectionBehavior.SelectRows;
menu.selectionMode = SelectionMode.MultiSelection;


([N1] wmejiaro) #11

Gracias amigos por las respuestas, de la primera forma sale bien, de la segunda sale error que no puede encontrar la variable SelectionBehavior, bueno pero ya funciona, ahora como hago para recoger estas selecciones para luego procesarlas?
Lo tengo en un formulario sin origen el control Tree widget


([N1] Juan) #12

Tienes que recorrer todo el arbol, ingresando a los subniveles, y al instanciar en cada recorrido a cada Item le aplicas la propiedad isSelected().


([N1] Juan) #13

Ahi va el ejemplo

tree.rar (1.97 KB)


([N1] wmejiaro) #14

Muchas gracias amigo Juan por el aporte.

Ahora me planteo lo siguiente:
1.- Si selecciono un nodo padre que se seleccionen todos los nodos y elementos dependientes de él, y cuando vuelva a seleccionar el mismo nodo padre se deseleccionen todos sus elementos que deriven de él.
2.- Pero una vez seleccionado el nodo padre si deseleccionamos un(os) elemento(s) que derive de él y volvemos a seleccionar el nodo padre mencionado en esta ocasión que vuelva a seleccionar todos los elementos dependientes.
En el punto 1 si es la 1ra vez mediante un(os) bucle(s) se seleccionan todos sus elementos pero para el punto 2?