Duvida sovre arvore

30/05/2008

1

pessoal não estou conseguindo montar uma arvore que funcione dessa forma

tenho 3 tabelas

master, detalhe, materia_prima



na tabela master tenhos os campos
id_master - integer
codigo - string
descricao - string
valor - float


na tabela detalhe tenhos os campos
id_detalhe - integer
id_master - integer
codigo - string
descricao - string
valor - float
tipo - string (mp=materia prima, pi=produto intermediario)

na tabela materia_prima tenhos os campos
id_materia_prima - integer
codigo - string
descricao - string

ex

master
1 - 1000 - embalagem - 20,00
detalhe
1 - 1 - 110 - plastico - 10,00 - mp
2 - 1 - 120 - laço - 10,00 - mp

----------------------------------------------
master
4 - 1001 - massa - 100,00
detalhe
1 - 4 - 100 - ovo - 30,00 - mp
2 - 4 - 200 - farinha - 50,00 - mp
3 - 4 - 300 - gordura - 20,00 - mp

-----------------------------------------------
master
5 - 2001 - bomba - 120,00
detalhe
1 - 5 - 10 - massa - 100,00 - pi
2 - 5 - 20 - embalagem - 20,00 - pi
-----------------------------------------------

-----------------------------------------------
master
6 - 2007 - alfajor - 220,00
detalhe
1 - 6 - 40 - massa - 100,00 - pi
2 - 6 - 50 - embalagem - 20,00 - pi
3 - 6 - 60 - recheio - 100,00 - mp
-----------------------------------------------



preciso criar uma arvore que fique dessa forma

+bomba
+massa
+ovo
+farinha
+gordura
+embalagem
+plastico
+laço


para criar isso poderia usar o conceito de id_parent, porem o meu problema é quando quero usar por ex
a composicao de massa para outro produto

+alfajor
+massa
+ovo
+farinha
+gordura
+embalagem
+plastico
+laço
recheio


Responder

Posts

você quer exibir numa TreeView?


Responder

31/05/2008

Upgradesource

Exatamente!




você quer exibir numa TreeView?



Responder

31/05/2008

Mssilva

Colega sua dúvida é simples
Usando ADO com banco Access 2003 e Delphi 7
Com as Tabelas Livro, Autor e Editora

var
Raiz : TTreeNode;
begin
  with TreeView1.Items do
    begin
      Clear;
    with ADOQuery1 do
      begin
       Close;
       Open;
         while (not Eof) do
           begin
             Raiz:= Add(nil,´Nome do Livro --> ´ + ADOQuery1nm_Livro.AsString);
             Raiz:= AddChild(Raiz, ´Nome do Autor --> ´ + ADOQuery1nm_Autor.AsString);
             AddChild(raiz, ´Nome da Editora --> ´ + ADOQuery1nm_Editora.AsString);
             Next;
           end;
      end;
    end;



Se funcionou avise.


Responder

02/06/2008

Upgradesource

Colega sua dúvida é simples Usando ADO com banco Access 2003 e Delphi 7 Com as Tabelas Livro, Autor e Editora
var
Raiz : TTreeNode;
begin
  with TreeView1.Items do
    begin
      Clear;
    with ADOQuery1 do
      begin
       Close;
       Open;
         while (not Eof) do
           begin
             Raiz:= Add(nil,´Nome do Livro --> ´ + ADOQuery1nm_Livro.AsString);
             Raiz:= AddChild(Raiz, ´Nome do Autor --> ´ + ADOQuery1nm_Autor.AsString);
             AddChild(raiz, ´Nome da Editora --> ´ + ADOQuery1nm_Editora.AsString);
             Next;
           end;
      end;
    end;

Se funcionou avise.


Prezado amigo.

Acabei não colocando todas as informações.
Segue o conceito

tenho o formulário composicao que tem master detallhe
No master coloco o codigo a descricao e o valor total da soma do valor em detalhes
na tabela detalhes tenho codigo, descricao, valor e tipo
se for tipo mp=materia prima, abre uma pesquisa onde busca a descricao da tabela materia prima, se for tipo pi=produto intermediario ele pesquisa na tabela master e pega o codigo e descricao e pega todos os outros itens do detalhe.

e o treeview deve mostrar apenas a estrutura daquela id(codigo) do master.

queria saber como montar essa arvore apenas do id principal, mas tambem como incluir os itens do detalhe quando incluir um pi.

sendo que um pi pode ter varias arvores ligadas nela.


uso firebird 2.0, delphi 2006, dbexpress.

Agradeço sua atenção.


Responder

02/06/2008

Mssilva

Colega ficou meio confuso, coloque o select que você está fazendo.


Responder

02/06/2008

Upgradesource

Colega ficou meio confuso, coloque o select que você está fazendo.


Então não tenho select pq não sei ainda como fazer.

Deixa tentar fazer diferente.

Quero incluir um item no detalhe, mas esse item possui pode ter uma arvore dentro dele
ex.
vou incluir o item 23 - massa tipo=pi
junto deve incluir os itens da massa
ovo
farinha
agua

mas lembre que esse item pode ter uma arvore maior
ex

posso incluir o item 25 - bomba tipo=pi
cobertura
----------leite condesado
massa
----------ovo
----------farinha
----------agua


obrigado pela sua atenção


Responder

03/06/2008

Mssilva

Colega estou no trabalho, assim que chegar em casa vou tentar montar o select ok, amanhã lhe respondo.


Responder

03/06/2008

Upgradesource

Colega estou no trabalho, assim que chegar em casa vou tentar montar o select ok, amanhã lhe respondo.


Ok

Obrigado pela atenção.


Responder

06/06/2008

Upgradesource

Colega estou no trabalho, assim que chegar em casa vou tentar montar o select ok, amanhã lhe respondo.


Tarde mssilva ´

Desculpa o incomodo, mas é que estou precisando muito resolver esse problema, ai gostaria de saber se vc conseguiu montar o select ?

Obrigado!
upgradesource


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira