FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#21
|
|||
|
|||
Cortar y pegar nodos
Para lo que queres hacer no es necesario agregar un campo a la BD, los TreeNode tienen métodos para moverse.
Podes hacerlo de la siguiente manera:
Antes de eso tenes que declarar una variable en la unidad del tipo TTreeNode llamada NodoCortado (o podes heredar el TTreeNode y agregarle un campo para este uso y poner las funciones anteriores como métodos). El segundo parámetro del MoveTo indica donde mover el nodo respecto del nodo pasado como primer parámetro, puede valer: * naInsert: hermano inmediatamente superior * naAdd: último hermano * naAddFirst: primer hermano * naChild: ultimo hijo * naChildFirst: primer hijo Fijate si te sirve. Saludos, Enrique Gabriel Baquela. http://enrique-gabriel-baquela.neurona.com |
#22
|
|||
|
|||
Mi probema no es con el metodo de cortar o pegar, eso ya lo tengo implementado sin problemas.
El campo en la BD me hace falta porque necesito guardar el orden en el cual aparecen los nodos, (a todos los niveles). El problema reside el el procedure CargarTree, cuando ordeno la consulta por el campo "orden", en lugar de por codigo, me da un error de indice no valido. Elemplo de arbol Nodo 1 orden 10 SubNodo 1 orden 20 SubNodo 2 orden 10 Nodo 2 orden 20 El orden es por nivel, es decir, el nivel 1 tiene que ordenarse primero,luego el nivel 2 y asi sucesivamente Resultado de la carga del arbol Nodo 1 SubNodo 2 SubNodo 1 Nodo 2 Alguna idea de como modificar el metodo CargarTree, para hacer esto? |
#23
|
||||
|
||||
Pues tendrás que explicar más a fondo la tabla que has creado, su clave primaria y los índices si es que los hay.
Yo no me he topado con ese error de invalid index, no sé a que se refiere. Por cierto, cuando añadas código delphi, hazlo entre etiquetas delphi, de lo contrario ni lo leeremos. [delphi] tu codigo delphi aqui [/delphi] Al enviar el mensaje verás el códiigo formateado. El tema de ordenamiento, podrías usar rangos, me explico: Si das un valor numérico, el sql te ordenará así: Código:
Nodo 1 orden 10 SubNodo 2 orden 10 SubNodo 1 orden 20 Nodo 2 orden 20 Supongamos que un nivel puede tener 1000 subnodos, pues al tiempo de dar pesos lo hacemos así: Código:
Nodo 1 orden 1000 SubNodo 2 orden 1001 SubNodo 3 orden 1002 Nodo 2 orden 2000 SubNodo 1 orden 2001 Al tiempo de insertar un Nodo, haces la consulta para saber qué peso le corresponde:
Y al insertar un subnodo lo mismo:
Puesto que no se repetira el campo orden, podrías crear un índice único y ascendente por dicho campo. (es lo primero que se me ha venido a la cabeza, igual alguien aporta una mejor solución.) Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 08-03-2008 a las 10:31:57. |
#24
|
|||
|
|||
Ya lo he resuelto.
Como en la tabla tengo el nivel, ordeno por nivel y orden, y el procedimiento que carga el arbol no falla Gracias |
#25
|
|||
|
|||
Las Tablas de Plan de Cuentas Tienen datos que ayudan
Aunqu eun poco tarde, debo precisar que esa era la Solucion, usar el campo Nivel, todas lasa Cuentas de un plan contable o tienen ya que necesitan saber la jerarquia dentro del plan, el unico problema seria con la de nivel de movimiento que generalmente en lugar de un numero le ponen D o M que Significan, Detalle o Movimiento, eso significa que estas cuenta ya no tienen sucesoras, tan solo antecesoras, o como contablemente se les conoce, cuentas principales o cuentas de acumulacion, esto lo coocemos muy bien los contables.
En sintesis, utilizar el campo Nivel para saber la jerarquia de las cuentas, utilizar la recursividad para moverse en todo el arbol y finalmente cuando encuentras un nivel D o M, o com le hayan puesto a las cuentas de ulltimo nivel, ya sabes que alli termina la Ramal. |
#26
|
||||
|
||||
Y para lazarus me arroja errores las lineas que estan de rojo
Cuando modifico la estructura de los nodos en el treeview, y quiero modificar la estructura padre-hijo de la tabla, ejecuto el siguiente código:
Basicamente lo que hace este ultimo código es borrar todo el arbol mostrado y volverlo a cargar como figura en el treeview. Como veras, lo mas importante es armar los datos de la tabla indicando de que nodo se van a desprender al mostrarlos en un treeview. Saludos, Enrique Gabriel Baquela. Mi indica error en la variable Mipuntero...
__________________
No lleves tus conocimiento a la tumba, Enseña a otros lo que sabes... Última edición por jejo1984 fecha: 16-01-2012 a las 19:21:07. |
#27
|
||||
|
||||
Por favor, jejo1984, ya te he comentado otras veces que dejes de contestar hilos de hace años, cuando no ofreces ninguna solución.
Si tienes cualquier duda, problema o consulta que hacer, por favor, crea un hilo nuevo en el foro adecuado. Te recuerdo nuestra guía de estilo. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Copiar un treeview a otro treeview | mierda | OOP | 0 | 26-07-2006 12:29:17 |
treeview | kiringui | OOP | 4 | 18-07-2006 11:52:38 |
Ver Mi Pc en un TreeView | gilberto_1126 | API de Windows | 2 | 22-06-2004 01:07:36 |
Como utilizar el Treeview, desplegar la info del arbol binario al treeview | leo21 | Varios | 2 | 08-04-2004 22:47:30 |
Como utilizar el Treeview, desplegar la info del arbol binario al treeview | leo21 | OOP | 1 | 08-04-2004 22:42:44 |
|