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.