Ir para conteúdo
Fórum Script Brasil
  • 0

Duvidas com Treeview


aprediz12

Pergunta

Pessoal como faço pra adicionar itens e subitens em um Treeview, sendo dados de duas tabelas da seguinte forma:

é um cadastro de produtos, que tem as tabelas de Grupo e Subgrupo

então o ITEM do treeview seria o Grupo e o SUBITEM seria o Subgrupo

estrutura das tabelas:

GRUPO

cdgrupo | degrupo
    1   | Cama Box
    2   | Estofados
    3   | Colchão
SUBGRUPO
cdgrupo | cdsubgupo| desubgrupo
    1   |     1    | Cama Box 1.38
    1   |     2    | Cama Box 1.58
    1   |     3    | Cama Box 1.98
    2   |     4    | Sofá 2 e 3 lugares
    2   |     5    | Sofá 5 lugares
    3   |     6    | Colchão casal D23
    3   |     7    | Colchão casal D33
    3   |     8    | Colchão solteiro D23
ae o treeview ficaria assim:
»1-Cama Box
   »1-Cama Box 1.38
   »2-Cama Box 1.58
   »3-Cama Box 1.98
»2-Estofados
   »4-Sofá 2 e 3 lugares
   »5-Sofá 5 lugares
»3-Colchão
   »6-Colchão casal D23
   »7-Colchão casal D33
   »8-Colchão solteiro D23
seria tipo o programa do imposto de rende. que tem algo desse tipo. no caso teria os selects: SELECT * FROM GRUPO na qryGrupo e SELECT * FROM SUBGRUPO NA qrySubgrupo o DataSource do qrysubgrupo estaria ligado ao DataSource da qryGrupo no caso seria algo assim:
begin
   qryGrupo.Close;
   qryGrupo.Open;
   while not qryGrupo.Eof do begin
        //aqui adicionada os items
       qrySubgrupo.Close;
       qrySubgrupo.Open;
       while not qrySubgrupo.Eof do begin
          //aqui adicionada os sub-items dentro de cada item
          qrySubgrupo.Next;
       end;
       qryGrupo.Next;
   end;
end;

bom.... a minha ideia era essa mas não consegui nada, num sei se to viajando na forma de fazer

valeu!

Editado por aprediz12
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

var

NodeGrupo, NodeFilho : TTreeNode;

begin

// exemplo de como adicionar um nó simples

NodeGrupo := TreeView.Items.Add(nil, 'Item do tipo Grupo');

// aqui, éh como adicionar um nó filho do nó anterior

NodeFilho := TreeView.Items.Add(NodeGrupo, 'Item do tipo SubGrupo');

end;

desta forma ficaria

>Item do tipo grupo

>Item do tipo Subgrupo

espero que tenha ajudado

Link para o comentário
Compartilhar em outros sites

  • 0

valeu Samara,

deu certo so que da seguinte forma: o AddChild em vez de Add.

NodeGrupo := TreeView.Items.AddChild(nil, 'Item do tipo Grupo');

NodeFilho := TreeView.Items.AddChild(NodeGrupo, 'Item do tipo SubGrupo');

agora me diz uma coisa,

como eu faço pra jogar no label1 e label2, o grupo e o subgrupo que ta selecionado.

por exemplo, se eu clicar somente no grupo, não faz nada, e se eu clicar no subgrupo, ae joga no label1 o valor do grupo e label =2 o valor do subgrupo,

é possível isso?

valeu...

Editado por aprediz12
Link para o comentário
Compartilhar em outros sites

  • 0

Para você mostrar em um EDIT os valores que esta selecionando no TreeView, você pode fazer assim:

no evento OnClique do TreeView, insira o seguinte código:

1) Tree é o nome dado ao meu Componente TREEVIEW

2) No meu caso tenho vários níveis para um plano de contas

Somente um exemplo OK

(1.00) = 01 - ENTRADAS (RECEBER)

(1.10) = 01.001 - OPERACIONAIS (RECEBER)

(1.01) = 01.001.01 - RECEBIMENTO EM DINHEIRO (RECEBER)

(1.02) = 01.001.02 - RECEBIMENTO EM CHEQUE (RECEBER)

(1.03) = 01.001.03 - RECEBIMENTO EM CARTÃO (RECEBER)

(1.20) = 01.002 - NÃO OPERACIONAIS (RECEBER)

(1.30) = 01.003 - DIVERSAS (RECEBER)

(2.00) = 02 - SAÍDAS (PAGAR)

(2.10) = 02.001 - OPERACIONAIS (PAGAR)

(2.01) = 02.001.01 - PAGAMENTO EM DINHEIRO (PAGAR)

(2.02) = 02.001.02 - PAGAMENTO EM CHEQUE (PAGAR)

(2.20) = 02.002 - NÃO OPERACIONAIS (PAGAR)

procedure TForm1.MostraNome(Sender: TObject)

Var

Geral, sRed, sCod1, sCod2, sCod3, N1, N2, N3: String;

begin

//Quando estiver no primeiro nível

If (Tree.Selected.Level = 0) Then

Begin

// Nome completo do ítem selecionado por exemplo = (1.00) = 01 - ENTRADAS (RECEBER)

Geral:= Tree.Selected.Text;

// Somente o código exemplo = 1.00

sRed:= Trim(Copy(Tree.Selected.Text,2,Pos(')', Geral)-2));

// Somente o código e seu número exemplo = 1.00 = 01

Cod1:= Trim(Copy(Tree.Selected.Text,1,Pos('-', Geral)-1));

// Somente seu número exemplo = 01

N1 := Trim(Copy(Tree.Selected.Text,10,Pos('-', Geral)-10));

End;

//Quando estiver no segundo nível

If (Tree.Selected.Level = 1) Then

Begin

// Nome completo do ítem selecionado por exemplo = (1.10) = 01.001 - OPERACIONAIS (RECEBER)

Geral:= Tree.Selected.Text;

// Copia o número = 1.10

sRed:= Trim(Copy(Tree.Selected.Text,2,Pos(')', Geral)-2));

// Copia o número = 01

Cod1:= Trim(Copy(Tree.Selected.Text,10,Pos('.', Geral)-1));

// Copia o número = 001

Cod2:= Trim(Copy(Tree.Selected.Text,13,Pos('.', Geral)));

// Copia o número = 01.001

N2:= Trim(Copy(Tree.Selected.Text,10,Pos('-', Geral)-10));

End;

//Quando estiver no terceiro nível

If (Tree.Selected.Level = 2) Then

Begin

// Nome completo do ítem selecionado por exemplo = (1.01) = 01.001.01 - RECEBIMENTO EM DINHEIRO (RECEBER)

Geral:= Tree.Selected.Text;

// Copia o número = 1.01

sRed:= Trim(Copy(Tree.Selected.Text,2,Pos(')', Geral)-2));

// Copia o número = 01

Cod1:= Trim(Copy(Tree.Selected.Text,10,Pos('.', Geral)-1));

// Copia o número = 001

Cod2:= Trim(Copy(Tree.Selected.Text,13,Pos('.', Geral)));

// Copia o número = 01

Cod3:= Trim(Copy(Tree.Selected.Text,17,Pos('-', Geral)-17));

// Copia o número = 01.001.01

N3:= Trim(Copy(Tree.Selected.Text,10,Pos('-', Geral)-10));

End;

end;

A questão toda é você verificar como vai implementar seu TreeView e depois fazer como no exemplo que estou passando ... para mostrar no edit fica fácil né é só atribuir o valor da variável no edit e pronto...

Espero que tenha resolvido seu problema ...

Abraços

Eduardo

Analista de Sistemas

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...