Ver Mensaje Individual
  #4  
Antiguo 09-12-2005
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Reputación: 22
Caro Va por buen camino
Hola
Los campos que yo tendria en mi BD serian codigo, descripcion, nivel de tipo string, puedes tener otros mas pero esos me parecen los que te armarian el arbol.

Lo que se me ocurre que puede ser que no sea lo mejor pero aqui te lo pongo, alguien que encuentre una solución mejor supongo que te respondera tambien.

Crear un archivo con tabulaciones en base al nivel osea:
nivel 1 -> ninguna tabulacion
nivel 2 -> 1 tabulacion
nivel 3 -> 2 tabulaciones
y asi sucesivamente porque tu arbol puede tener n niveles


Código Delphi [-]
var
archivo:TextFile;
begin
ruta:=ExtractFileDir(Application.ExeName) + '\' + 'arch.txt';
ASSIGNFILE(archivo,ruta);
ReWrite(Archivo);
 
sql:='SELECT codigo, descripcion, nivel FROM tabla ORDER BY codigo';
//pones todo lo demas para ejecutar la consulta
 
qry.First;
while not(qry.Eof) do
begin
codigo:=qry.Fields[0].AsString;
descripcion:=qry.Fields[1].AsString;
nivel:=qry.Fields[2].AsString;
 
//lo que aparecera en tu arbol sera la descripcion con esta linea 
//te lo ira poniendo las tabulaciones segun el nivel 
descripcion_fin:=StringofChar(#32,strtoint(nivel)-1)+descripcion;
WriteLn(Archivo,descripcion_fin);
qry.Next;
end;

con eso tendrias tu archivo creado con tabulaciones y todo ahora seria cargarlo dentro del arbol que seria de esta forma

Código Delphi [-]
TreeView.LoadFromFile(ExtractFilePath(Application.ExeName)+'arch.txt');

conste suponiendo que estamos manteniendo la codificación del codigo que pusiste y que seria de tipo string para que te lo ordene de la forma que tu quieres, otra forma seria hacerlo recursivo pero nose como, eso seria espero te sirva chausito.
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita