Duvida sovre arvore
30/05/2008
0
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
Upgradesource
Posts
31/05/2008
Mssilva
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.
02/06/2008
Upgradesource
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;
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.
02/06/2008
Mssilva
02/06/2008
Upgradesource
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
03/06/2008
Mssilva
03/06/2008
Upgradesource
Ok
Obrigado pela atenção.
06/06/2008
Upgradesource
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
Clique aqui para fazer login e interagir na Comunidade :)