Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas con el TreeView y los nodos (https://www.clubdelphi.com/foros/showthread.php?t=12827)

Gustavo Gowdak 16-07-2004 00:37:26

Problema con el TTreeView y los nodos
 
:confused: Hola tengo un problema con el TTreeView y quiero saber si me pueden ayudar, estoy realizando un sistema contable y tengo un plan de cuentas de 5 niveles, en donde cada nivel de cuentas es un SubItem de del TTreeView, mi problema es: ¿Como puedo agregar un SubItem al TTreeView para cada cuenta en sus respectivos niveles?, donde cada nivel de cuenta esta dividido por un punto (.) Ej:1.0.0.00.00, me entienden?
Tengo entendido que tengo que crear modos para luego insertar al TTreeView, pero es que no entiendo mucho de los nodos en delphi, espero que me puedan ayudar y si es con ejemplo mejor.
Tambien quiero saber como puedo agregar una imagen .bmp a mi TTreeView
Estoy trabajando con Base de Datos Interbase 6.5 y Delphi 7, desde ya gracias!!!!!!!!!

ruina 16-07-2004 14:26:34

Código Delphi [-]
procedure TForm1.BnuevoClick(Sender: TObject);
var nuevo:TTreeNode;
begin
  nuevo:=TreeView1.Items.Add(TreeView1.Selected,'hermano');
// aqui tienes acceso al nodo recien creado, como por ejemplo para acceder a  nuevo.Data;
  if  TreeView1.Selected<>nil then
      TreeView1.Items.AddChild(  TreeView1.Selected,'hijo');
end;

mira a ver si te sirve este ejemplo aclaratorio ^_^

Gustavo Gowdak 28-07-2004 21:42:19

Problemas con el TreeView y los nodos
 
Hola amigos, tengo un problema con el TreeView, es que quiero como puedo recorrer un TreeView de varios subitems y tomar la informacion de cada subitems para luego comparar y agregar en la posicion que le corresponde, en sintesis necesito saber el padre de cada subitems, como habeis visto estoy trabajando con nodos...
Les doy mi ejemplo,

1.0.0.00.00
1.1.0.00.00
1.1.1.00.00
1.1.1.01.00

este es un plan de cuentas que estoy leyendo de una tabla de interbase donde cada items es un nivel de cuentas, el problema es que quiero ingresar la cuenta 1.1.1.01.01 cuyo padre es 1.1.1.01.00, como hago este algoritmo utilizando TreeView y nodos...

Porfa si me pueden contestar con ejemplos le agradeseria, desde ya les pido perdon por haberles robado su tiempo...

GRACIAS!!!!!!!!!!!!!!!!!

Gustavo Gowdak 28-07-2004 22:35:42

mi problema es para recorrer el treeview, es que trabajo con nodos y tengo que ingresar una cuenta entre 2 nodos y no se como hacer, no se si me explico

ruina 30-07-2004 13:53:44

Código Delphi [-]
 
    for i:=0 to TreeView1.Items.Count do
    begin
         if TreeView1.Items[i].Text='1.1.1.01.00' then
          TreeView1.Items.AddChild(TreeView1.Items[i],'1.1.1.01.01')
    end;

no se si es esto lo que querias....

david_uh 23-09-2007 17:44:19

Bueno quizas es demasiado tarde este post pero a ver si sirve de algo: tuve que hacer lo mimo que estas haciendo. Yo te sugeriria la siguiente estructura de la tabla de cuentas
Codigo,Id,IDParent,nombre. para empezar tal vez necesites más campo, el campo código almacenas el codigo 1.0.0.0 , 1.1.0.0, ..., etc lo cuales tendrás que calcular tu mismo, per los campos importantes para la jeraquia son id e IdParent, en el campo id=codigo único de la cuenta, y el campo idparent=el Id de la cuenta padre, para las cuentas que no tiene padre le pones cero (0).

Con esa estructura puedes cargar los datos a un treeview usando una rutina que vaya filtrando primero parent=0 osea los padres, luego tomas el primero y filtar a los hijos de este y los agregas, repites el proceso usando recursividad. o puedes usar el control para dbtreeview en la web de www.torry.net pones en el buscador treeview y te vana salir un monto.

Por último necesitaras un treeview + listview es decir un treeview con columnas para poder mostrar en una la cuenta y en otra los totales los cuales tendras que calcular recursivamente tambien, no tengo el código a la mano si lo necesitas me avisas para postearlo. pero te adelanto la clave es usar recursividad para esto de otra manera lo veo inviable.

Espero te sirva
Saludos.


La franja horaria es GMT +2. Ahora son las 01:50:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi