Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Ayuda LLenar TreeView con un Query

Saludos compañeros, pues aquí regreso con una novatada, necesito llenar un DBTreeview con una consulta SQL de la siguiente manera:

Cita:
Departamento
----Empleado 1
----Empleado 2
----Empleado 3
Departamento 2
----Empleado 1
----Empleado 2
Las Tablas departamentos y empleados están relacionadas por un campo ID.

esta es la consulta que estoy haciendo (estoy seguro que esta mal):

Código SQL [-]
select * from DEPARTAMENTO,EMPLEADOS where EMPLEADOS.DPTOID =  DEPARTAMENTO.DPTOID

estoy trabajando con Delphi7 y Firebird 2.0

Saludos.

PD: esta la primera vez que trabajo con esos tipos de componentes ya sea TreeView, ListView, etc., etc.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.

Última edición por enecumene fecha: 01-06-2008 a las 16:08:30.
Responder Con Cita
  #2  
Antiguo 01-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Bueno pude lograr el cometido, pero en vez de usar DBTreeView decidí usar el TreeView, me di cuenta que era muy engorroso, pues aquí va como lo hice:

Código Delphi [-]
Var
  I,CampoCount:Integer;
  Nodo:Packed Array[0..99] of TTreenode;
  NodoValor:Packed array[0..99] of Variant;
begin
  TreeView1.Items.Clear;
  ZDptos.First;
  CampoCount:=ZDptos.FieldCount;
  While not ZDptos.Eof do
  begin
    if NodoValor[0]<> ZDptos.Fields[0].Value then
      Nodo[0]:=TreeView1.Items.Add(nil,Vartostr(ZDptos.Fields[0].Value));
    for I:=1 to ZDptos.FieldCount-1 do
    begin
      if NodoValor[i]<> ZDptos.Fields[i].Value then
        Nodo[i]:=TreeView1.Items.AddChild(Nodo[I-1],Vartostr(ZDptos.Fields[i].Value));
                                Nodo[i].Data := pointer(ZDptos.FieldByName('ID').AsInteger);
      NodoValor[i]:=ZDptos.Fields[i].Value;
    end;
    NodoValor[0]:=ZDptos.Fields[0].Value;
    ZDptos.next;
  end;

Pero me deja un feo arbol de la siguiente manera:

Cita:
+ Departamento 1
-----+ Empleado
---------ID
+ Departamento 2
-----+ Empleado
---------ID
-----+ Empleado
---------ID
¿Cómo puedo ocultar el SubNodo de Empleado (ID)?

Esta es la consulta:

Código SQL [-]
select DEPARTAMENTO.DPTO, EMPLEADOS.NOMBRE, EMPLEADOS.ID from EMPLEADOS, DEPARTAMENTO  where EMPLEADOS.DPTOID = DEPARTAMENTO.DPTOID group by DEPARTAMENTO.DPTO, EMPLEADOS.NOMBRE, EMPLEADOS.ID


Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.

Última edición por enecumene fecha: 01-06-2008 a las 05:03:08.
Responder Con Cita
  #3  
Antiguo 01-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Lo último que he estado haciendo es lo sisguiente:

Código Delphi [-]
TTreeView(Nodo[i]).Visible := False

¿Resultado?:

Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project TimerPunchAdmin.exe raised exception class EAbstractError with message 'Abstract Error'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
A ver, quién me echa una mano, ¿Por favor? .

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 01-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Bueno, creo que lo conseguí, pero no sé es la mejor forma, pero ahí va:

Código Delphi [-]
Var
    I,CampoCount:Integer;
    Nodo:Packed Array[0..99] of TTreenode;
    NodoValor:Packed array[0..99] of Variant;
begin
    TreeView1.Items.Clear;
    ZDptos.First;
    CampoCount:=ZDptos.FieldCount;
    While not ZDptos.Eof do
    begin
        if NodoValor[0]<> ZDptos.Fields[0].Value then
            Nodo[0]:=TreeView1.Items.Add(nil,Vartostr(ZDptos.Fields[0].Value));
        for I:=1 to ZDptos.FieldCount-1 do
        begin
            if NodoValor[i]<> ZDptos.Fields[i].Value then
                Nodo[i]:=TreeView1.Items.AddChild(Nodo[I-1],Vartostr(ZDptos.Fields[i].Value));
        Nodo[i].Data := pointer(ZDptos.FieldByName('ID').AsInteger);
//esto fue lo que agregue//
      if Nodo[i].Level = 2 then
        begin
          Nodo[i].Delete;
        end;
//esto fue lo que agregue
              NodoValor[i]:=ZDptos.Fields[i].Value;
        end;
        NodoValor[0]:=ZDptos.Fields[0].Value;
        ZDptos.next;
    end;

lo que hace que borra el tercer nivel del arbol que era ID, de todos modos que alguien me de su comentario, se lo agradecería mucho .

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como llenar un stringGrid a partir de un Query? enecumene Conexión con bases de datos 12 25-06-2008 21:00:24
Buscar en un DBTreeView ludan508 Conexión con bases de datos 1 03-08-2007 23:29:32
ayuda para llenar un grid jhcaboverde Conexión con bases de datos 1 24-02-2007 01:17:51
llenar una tabla dbf con un query de mysql coletaun Varios 4 03-01-2006 22:04:14
Utilizar DBTreeView fjolivares Varios 0 19-02-2004 16:24:07


La franja horaria es GMT +2. Ahora son las 01:48:14.


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