PDA

Ver la Versión Completa : Cargar un TdxTreeView (Nodos y SubItems) desde BD MYSQL en XE10 - resuelto


darkamerico
20-04-2016, 18:38:17
Saludos amigos, aqui les dejo este fragmento de código, espero les sirva

procedure TfrmMain.FormActivate(Sender: TObject);
var
Node : TTreeNode;
i,numitems:integer;
begin
dm.q_Rubro.Close;
dm.q_Rubro.Open;
i:=0;
while not dm.q_Rubro.Eof do
begin
tree.Items.Add(nil,dm.q_Rubro.FieldByName('idrubro').AsString+'.'+
dm.q_Rubro.FieldByName('tituloABR').AsString);
tree.Items.Item[i].Selected:=true;

dm.q_ItemsXRubro.Close;
dm.q_ItemsXRubro.Params[0].AsInteger:=dm.q_Rubro.FieldByName('idrubro').AsInteger;
dm.q_ItemsXRubro.Open;

numitems:=0;
while not dm.q_ItemsXRubro.Eof do
begin
Node:=tree.Items.AddChild(tree.Selected,dm.q_ItemsXRubro.FieldByName('idrubroitem').AsString+'.'+
dm.q_ItemsXRubro.FieldByName('item').AsString);
dm.q_ItemsXRubro.Next;
Inc(numitems);
end;
dm.q_Rubro.Next;
i:=i+numitems+1;
end;

La estructura de las tablas rubro y rubroItem es la siguiente:

CREATE TABLE `scoring_rubro` (
`idrubro` int(11) NOT NULL,
`titulorubro` varchar(255) DEFAULT NULL,
`tituloABR` varchar(50) DEFAULT NULL,
`puntaje_max` float DEFAULT NULL,
PRIMARY KEY (`idrubro`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `scoring_rubroitem` (
`idrubroitem` int(11) NOT NULL,
`idrubro_fk` int(11) DEFAULT NULL,
`item` varchar(255) DEFAULT NULL,
`puntaje` float DEFAULT NULL,
PRIMARY KEY (`idrubroitem`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Saludos

ElKurgan
21-04-2016, 07:39:49
Gracias por compartir

Saludos