barbosasilva Aprendiz
Registrado: Quarta-Feira, 1 de Fevereiro de 2017 Mensagens: 102
|
Enviada: Qua Ago 14, 2019 3:46 pm Assunto: Adicionar subitem - Treeview delphi |
|
|
Boa tarde, gente
estou precisando usar o treeview para apresentar informações de disposição de equipamentos (nós filhos) em linha de produção. Mas estou fazendo algo errado, pq ao tentar adicionar os subitens, eles só estão entrando corretamente no primeiro nó pai, a partir do segundo eles começam a entrar como subitens de subitens.
Exemplo:
eu queria que ficasse assim:
- LP1
-EQ1
-EQ2
-LP2
-EQ3
-EQ4
-LP3
-EQ5
-EQ6
No entanto está ficando assim:
- LP1(Nó 1)
-EQ1 (subitem 1)
-EQ3 (subitem do subitem 1)
-EQ5
-EQ6
-EQ4
-EQ2
-LP2 (nó 2)
-LP3 (nó 3)
o código está assim:
Código: | procedure Tfrmgestaodamanutencao.FormShow(Sender: TObject);
var
NUM_LP, i, j: Integer;
NAME_LP, COD_LP: array of String;
Node: TTreeNode;
NUM_COD_EQUIP: Integer;
COD_EQUIP: array of string;
begin
TrvwEquip.FullExpand;
TrvwEquip.Items.Clear; // Limpa o treeview
while not DM_equip.ADOQueryEQUIP.Eof do
begin
// adiciona nos itens principais do treeview os nomes das linhas de produção
Node := (TrvwEquip.Items.Add(nil, DM_equip.ADOQueryEQUIP.FieldByName
('NOME_LP').AsString));
DM_equip.ADOQueryEQUIP.Next;
end;
// Seta o vetor que irá salvar os códigos identificadores das linhas de produção
SetLength(COD_LP, NUM_LP);
DM_equip.ADOQueryEQUIP.SQL.Clear;
// seleciona o código de todas as linhas de produção na planilha LINHA_PROD
DM_equip.ADOQueryEQUIP.SQL.Add('SELECT COD_LP from LINHA_PROD');
DM_equip.ADOQueryEQUIP.Active := true;
while not DM_equip.ADOQueryEQUIP.Eof do
begin
for i := 0 to NUM_LP - 1 do
Begin
// salva os códigos das linhas de produção em um vetor
COD_LP[i] := DM_equip.ADOQueryEQUIP.FieldByName('COD_LP').AsString;
DM_equip.ADOQueryEQUIP.Next;
end;
end;
{ adicionar no treeview os equipamentos respectivos de cada nó (linha de produção),
rastreando-os via COD_LP }
{ seleciona o código dos equipamentos de uma respectiva linha de produção }
for i := 0 to NUM_LP - 1 do
Begin
DM_equip.ADOQueryEQUIP.SQL.Clear;
DM_equip.ADOQueryEQUIP.SQL.Add(
'SELECT COD_EQUIP from 1_EQUIPAMENTO where LINHA_PROD = "' + COD_LP[i]
+ '"');
DM_equip.ADOQueryEQUIP.Active := true;
// adiciona os equipamento às suas respectivas linhas de produção no treeview
for j := 0 to NUM_COD_EQUIP - 1 do
begin
TrvwEquip.Items.AddChild(TrvwEquip.Items[i], COD_EQUIP[j]);
end;
end; |
|
|
barbosasilva Aprendiz
Registrado: Quarta-Feira, 1 de Fevereiro de 2017 Mensagens: 102
|
Enviada: Qua Ago 14, 2019 3:49 pm Assunto: |
|
|
desculpem, acabou ficando desconfigurado uma parte do texto
Código: | eu queria que ficasse assim:
- LP1
-EQ1
-EQ2
-LP2
-EQ3
-EQ4
-LP3
-EQ5
-EQ6
No entanto está ficando assim:
- LP1(Nó 1)
-EQ1 (subitem 1)
-EQ3 (subitem do subitem 1)
-EQ5
-EQ6
-EQ4
-EQ2
-LP2 (nó 2)
-LP3 (nó 3) |
|
|