Ver Mensaje Individual
  #1  
Antiguo 20-04-2016
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 227
Reputación: 14
darkamerico Va por buen camino
Thumbs up Cargar un TdxTreeView (Nodos y SubItems) desde BD MYSQL en XE10 - resuelto

Saludos amigos, aqui les dejo este fragmento de código, espero les sirva

Código Delphi [-]
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:

Código SQL [-]
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;

Código SQL [-]
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
Responder Con Cita