Rellenar TreeView con datos de una BD.

View: New views
2 Messages — Rating Filter:   Alert me  

Rellenar TreeView con datos de una BD.

by CanihoJR :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Buenas! mi duda la tengo expuesta en el foro: http://www.arastsoftware.es/gambasforum/viewtopic.php?f=5&t=6&sid=2c812b7658d735d8a716a1eed1084521

No obstante os la copio, pero alli podreis ver imagenes:


Rellenar un TreeView

Postby canihojr » Wed Sep 02, 2009 11:53 pm
Buenas! tengo una base de datos (ID, PADRE, CATEGORIA)

ID--> Simplemente una clave principal, sin ninguna funcion especifica..... (se autoincrementa)
PADRE-->Si especifico una categoria esta categoria es padre, sino especifico ninguna se autorrellena con PRINCIPAL para saber q es una categoria RAIZ.....
CATEGORIA--> es el nombre de la categoria creada....

Como puedo rellenar un treeview para que me organize esto?? o_O de momento he conseguido hacerlo mendiante el siguiente codigo chapuzas hasta 2 niveles...

------------------------------------------------------------------------------------------
PUBLIC SUB llenararbol()
  DIM resultado AS Result
  DIM resultado2 AS Result
  DIM contador AS Integer
  DIM contador2 AS Integer
  DIM indice AS Integer
 
  indice = 100
  TreeView1.Clear
  'abro conexion
  Conexion.Connect()
  'ejecuto insert
  TRY resultado = db.Exec("SELECT * FROM `articuloscategorias` WHERE `Padre` LIKE 'PRINCIPAL'")
  IF ERROR THEN Message.Error("ERROR 101.")
 

  resultado.MoveFirst
  contador = resultado.Count
  TreeView1.Add("ROOT", "PRINCIPAL")
 
  WHILE 1 <= contador
    TreeView1.Add(contador, resultado!Nombre,, "ROOT")
    TreeView1.Refresh
    TRY resultado2 = db.Exec("SELECT * FROM `articuloscategorias` WHERE `Padre` LIKE '" & resultado!Nombre & "'")
    IF ERROR THEN Message.Error("ERROR 102.")
    contador2 = resultado2.Count
    WHILE 1 <= contador2
      TreeView1.Add(indice, resultado2!Nombre,, contador)
      resultado2.MoveNext
      DEC (contador2)
      INC (indice)
    WEND
    resultado.MoveNext
    DEC (contador)
  WEND
  TreeView1["ROOT"].Expanded = TRUE
  Conexion.$Con.Close
 
END
-------------------------------------------------------------------------

Como ya he mencionado antes, en el foro podeis ver una imagen del Formulario... mi intencion es eliminar el combobox del padre y seleccionar el padre en el treeview... alguna idea? alguna ayuda? alguna sugerencia? :)

cualquier aportacion (critica o acritica) sirve!, gracias y un saludo :)

Re: Rellenar TreeView con datos de una BD.

by Soplo :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hola
Tienes un ejemplo de recorrer una tabla y llenar con ella en treeview en el foro
http://www.gambas-es.org/viewtopic.php?f=4&t=35

Un saludo
CanihoJR wrote:
Buenas! mi duda la tengo expuesta en el foro: http://www.arastsoftware.es/gambasforum/viewtopic.php?f=5&t=6&sid=2c812b7658d735d8a716a1eed1084521

No obstante os la copio, pero alli podreis ver imagenes:


Rellenar un TreeView

Postby canihojr » Wed Sep 02, 2009 11:53 pm
Buenas! tengo una base de datos (ID, PADRE, CATEGORIA)

ID--> Simplemente una clave principal, sin ninguna funcion especifica..... (se autoincrementa)
PADRE-->Si especifico una categoria esta categoria es padre, sino especifico ninguna se autorrellena con PRINCIPAL para saber q es una categoria RAIZ.....
CATEGORIA--> es el nombre de la categoria creada....

Como puedo rellenar un treeview para que me organize esto?? o_O de momento he conseguido hacerlo mendiante el siguiente codigo chapuzas hasta 2 niveles...

------------------------------------------------------------------------------------------
PUBLIC SUB llenararbol()
  DIM resultado AS Result
  DIM resultado2 AS Result
  DIM contador AS Integer
  DIM contador2 AS Integer
  DIM indice AS Integer
 
  indice = 100
  TreeView1.Clear
  'abro conexion
  Conexion.Connect()
  'ejecuto insert
  TRY resultado = db.Exec("SELECT * FROM `articuloscategorias` WHERE `Padre` LIKE 'PRINCIPAL'")
  IF ERROR THEN Message.Error("ERROR 101.")
 

  resultado.MoveFirst
  contador = resultado.Count
  TreeView1.Add("ROOT", "PRINCIPAL")
 
  WHILE 1 <= contador
    TreeView1.Add(contador, resultado!Nombre,, "ROOT")
    TreeView1.Refresh
    TRY resultado2 = db.Exec("SELECT * FROM `articuloscategorias` WHERE `Padre` LIKE '" & resultado!Nombre & "'")
    IF ERROR THEN Message.Error("ERROR 102.")
    contador2 = resultado2.Count
    WHILE 1 <= contador2
      TreeView1.Add(indice, resultado2!Nombre,, contador)
      resultado2.MoveNext
      DEC (contador2)
      INC (indice)
    WEND
    resultado.MoveNext
    DEC (contador)
  WEND
  TreeView1["ROOT"].Expanded = TRUE
  Conexion.$Con.Close
 
END
-------------------------------------------------------------------------

Como ya he mencionado antes, en el foro podeis ver una imagen del Formulario... mi intencion es eliminar el combobox del padre y seleccionar el padre en el treeview... alguna idea? alguna ayuda? alguna sugerencia? :)

cualquier aportacion (critica o acritica) sirve!, gracias y un saludo :)