En relación a anterior pregunta de treeview. Es posible recuperar en forma de array o similar el item seleccionado. Siento no haber podido finalizar la anterior pregunta porque la has descartado.
1 respuesta
Respuesta de Antonio Garcia
1
1
Antonio Garcia, clipper todas sus versiones (manejo total) power builder todas...
Esto lo logras utilizando la función FINDITEM() Es un poco peculiar, la sintaxis de esta función es: FINDITEM(<opcion>, <handle>) Esta devuelve el numero del nodo relacionado. Ademas deberás utilizar la propiedad children, la cual te informa sobre la existencia de nodos hijos. Las opciones diponibles son: RootTreeItem! = localiza el primer nivel NextTreeItem! = Siguiente nodo sobre el mismo nivel relacionado con el numero de handle (o el handle del nodo) PreviousTreeItem! = igual que la anterior pero hacia atras. ParentTreeItem! = el padre del nodo basado en el handle ChildTreeItem! = El primer hijo que esta relacionado con el item que posee el handle Con todo lo anterior, ahora puedes montar un loop o bucle, con el cual puedes tomar en orden los nodos iniciando desde el primero hasta el final, y según te desplazas vas ubicando el array en función de los resultados de la función FINDITEM(ChildTreeItem!, <handle>) Para más información de todo lo anterior utiliza la ayuda online F1 y busca treeview, dentro de este en la parte de funciones encontraras la descripción de FINDITEM() donde también encontraras un pequeño ejemplo. Espero esto pueda se de utilidad para resolver tu problema saludos agdsys
Hola agdsys, en parte soluciona el problema pero no del todo, te cuento como lo tengo montado a ver si tiene solución. La idea es que tengo una tabla donde me aparecen diferentes departamentos, dentro de los cuales existen diferentes usuarios, hago una consulta sql e introduzco los resultados en un array de 2 dimensiones. La primera dimension seria el nivel root del treeview(departamento) y la segunda los nodos correspondientes(usuarios). De esta forma lo que necesito seria que al seleccionar el nivel 1 y nodo 3 me devolviese una array de tipo variable[1,3]. ¿Es posible esto? Podría ser algo así.. FINDITEM(RootTreeItem!, <handle>) para localizar el departamento, pero como localizo el children(usuario) FINDITEM(ChildTreeItem!, <handle>)?. Gracias de antemano, saludos. Espero haberme explicado.
Es más o menos o lo que quiero hacer. Si te parece te finalizo la pregunta para que no se extienda mucho y te explico en una nueva exactamente lo que busco. Saludos
A ver si entendí: Al parecer lo que intentas es plasmar en un treeview, los datos de 2 tablas, una que contiene departamentos, y la otra usuarios todo esto depende de una selección tipo SQL la cual me imagino tiene condiciones. Bien. Si esto es así: La idea que te planteo es, plasmar directamente del resultado, a tu treeview, estoy tratando de entender el porque del array, y creo que es porque necesitas un dato que relacione el nodo, de tal forma que cuando estés posicionado en el, puedas acceder a información de este, te propongo (si esto fuese así), que utilices la variable data, que esta en cada uno de los nodos, esta variable es de tipo any, y puede contener cualquier cosa, desde un valor tipo numérico, hasta un objeto. O una clase. Por ejemplo, podrías utilizarlo para colocar el handle del nodo, y de esta forma accesar directamente al nodo, o si esto no es lo que necesitas, el código del usuario por ejemplo y retraer los datos relacionados, utilizando este valor. Si aun no es lo que buscas, me gustaría conocer que tienes pensado hacer con el treeview y a lo mejor puedo darte una idea alterna.