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
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
zroqryDC.RecNo := parentnode.Index + 1;
zroqryAM.RecNo := Node.Index + 1;
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
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