Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-03-2010
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
VirtualTreeView de tres niveles... solo consigo dos :(

Hola a tod@s,

he estado leyendo varios hilos sobre ese componente (VirtualTreeView), me parece muy bueno y con muchas posibilidades pero estoy atascado en una tonteria que no consigo resolver.

Basándome en la idea de este hilo sobre treeview y tablas master/detail lo he adaptado con 3 qry (zeos read only) relacionados entre sí (MasterSource, MasterField, LinkedFields) y consigo cargar los primeros qry's pero estoy atascado en cargar el 3 nivel.... No me queda nada claro el tema de los nodos, items, etc...

el código adaptado es :
Código Delphi [-]
procedure TFPruebas.vrtlstrngtr1InitNode(Sender: TBaseVirtualTree;
  ParentNode, Node: PVirtualNode;
  var InitialStates: TVirtualNodeInitStates);
var data:PMyData;
begin
  data := Sender.GetNodeData(Node);
  if Sender.GetNodeLevel(Node) = 0 then
  begin
    // Nodo maestro - DC
    zroqryDC.RecNo := node.Index + 1;
    data.inomdcmrcial := zroqryDC.fieldbyname('nomdcmrcial').asString;
    data.icoddcmrcial := zroqryDC.fieldbyname('coddcmrcial').AsInteger;
    if zroqryAM.RecordCount>0 then InitialStates:=InitialStates+[ivsHasChildren];
  end else
  begin
    // Nodo Detalle - AM
    zroqryDC.RecNo := parentnode.Index + 1;
    zroqryAM.RecNo := Node.Index + 1;
//aqui faltaria añadir el 3 nivel (se llama TDAS) pero se cómo indicarle que son lineas de AM 
    data.inomdcmrcial := zroqryDC.fieldbyname('nomdcmrcial').asString;
    data.icoddcmrcial := zroqryDC.fieldbyname('coddcmrcial').AsInteger;
    data.inommnger    := zroqryAM.fieldbyname('nommnger').AsString;
    data.icodmnger    := zroqryAM.fieldbyname('codmnger').AsInteger;
    data.inmbre       := zroqryTDAS.fieldbyname('nmbre').AsString;
    data.icom         := zroqryTDAS.fieldbyname('com').AsInteger;
  end;
end;


procedure TFPruebas.vrtlstrngtr1Change(Sender: TBaseVirtualTree;
  Node: PVirtualNode);
begin
// los 3 grids actualizan los datos correctamente al cambiar en el treeview
  if bAutoLocate and assigned(node) then
  begin
    if sender.GetNodeLevel(node) = 0 then
      zroqryDC.RecNo:=node.Index+1
    else begin
      zroqryDC.RecNo:=node.parent.Index+1;
      zroqryAM.RecNo:=node.Index+1;
    end;
  end;
end;
alguien podría mostrarme un poco de luz por favor?? estoy muy, pero muy espeso

saludos y gracias a tod@s
__________________
Toni | blog
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Componente VirtualTreeView katuxa OOP 1 20-03-2009 17:39:46
sugerencia con maestro detalle de tres niveles JoseAntonio Firebird e Interbase 1 13-02-2009 01:00:33
escojer solo tres caracteres de un combo?? axlrafael OOP 4 23-07-2008 18:09:06
Maestro-Detalle de tres niveles con ZEOS JCarlosas MySQL 4 03-04-2007 00:45:50
VirtualTreeview porreres Varios 8 19-09-2005 13:05:39


La franja horaria es GMT +2. Ahora son las 00:29:10.


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