Dados de várias tabelas no mesmo Grid.

Delphi

10/03/2004

Pessoal,

Não consegui pensar em nada que esteja a meu alcance para fazer isto da forma que necessito.

Imginem um produto que é composto por vários itens (um computador por exemplo)
Preciso fazer o seguinte:
no grid mostrar da seguinte forma:
COD DESC QT
001 CPU 1
001.1 HD 1
001.2 DISQUETE 1
001.N XXXX 1
002 MONITOR 1
002.1 XXX 20
002.2 YYYY 5
003 MOUSE 1

Naum sei se ficou bem claro, mas pra ajudar vou listar a estrutura das tabelas que preciso pegar a informação:

TAB1
COD_ITEM_PAI
COD_ITEM_FILHO
DESCR
QT

Quando faço o filtro passo o código principal do produto, nisto o filtro e feito inicialmente, após preciso filtrar isto novamente para cada um dos registros que apareceram para buscar os seus filhos, isto é a estrutura multi-nível do sistema, preciso fazer a impressão dela mas mostrando como citei acima.

Se alguém puder ajudar, tenho um pouco de pressa.

Obrigado a todos pela colaboração!

Att.
Fernando Silva de Souza


Nando

Nando

Curtidas 0

Respostas

Cabelo

Cabelo

10/03/2004

vc tem somente uma tabela?????

Cabelo


GOSTEI 0
Nando

Nando

10/03/2004

Sim, é apenas uma tabela mas ela se relaciona com ela mesma, deixa eu explicar melhor:

digamos que eu tenha uma tabela ITEM e nela eu tenho
COD DESCR
0001 COMPUTADOR
0002 CPU
0003 PLACA MAE
0004 PROCESSADOR
0005 MOUSE
0006 TECLADO
0007 GABINETE
0008 MONITOR

E também tenho uma tabela que guarda a estrutura deste item, ou o que compõe um item:
ITEM_PAI ITEM_FILHO QT
0001 0002 1
0001 0005 1
0001 0008 1
0002 0003 1
0002 0004 1
0002 0007 1

Quando eu pedir a estrutura do item 0001 COMPUTADOR no grid gostaria que os dados sejam mostrados assim:
CPU
GABINETE
PLACA MAE
PROCESSADOR
MONITOR
MOUSE
TECLADO

Espero que tenham entendido minha dúvida, continuo a procura de uma solução, mas achei uma que no momento me serviu:
Cirei uma tabela temporária para gravar esta estrutura e na hora de mostrar eu pego os dados desta tabela.


GOSTEI 0
Cabelo

Cabelo

10/03/2004

Amigo vê se funciona assim :

select DISTINCT TABLE1.DESCR, TABLE2.ITEM_FILHO from
TABLE1, TABLE2 where TABLE2.ITEM_PAI = ´001´ and TABLE1.COD =
TABLE2.ITEM_FILHO

vc pode criar um DBLookupcombo e ligar uma query neste lookup, com o seguinte sql

´select COD, DESCR from TABLE1 order by COD´

um grid ligado ao datasource da 1º query com o seguinte SQL :

select DISTINCT TABLE1.DESCR, TABLE2.ITEM_FILHO from
TABLE1, TABLE2 where TABLE2.ITEM_PAI = ´´´+
DBLookUpCombo1.Text+´´´ and TABLE1.COD =
TABLE2.ITEM_FILHO ou ainda

select DISTINCT TABLE1.DESCR, TABLE2.ITEM_FILHO from
TABLE1, TABLE2 where TABLE2.ITEM_PAI = ´´´+
Query2.fieldbyname(´COD´).asstring+´´´ and TABLE1.COD =
TABLE2.ITEM_FILHO

coloque estes SQL dentro do evento click de um botão ou no evento onCloseUp do LookupCombo, perceba que isto irá mudar os itens de acordo com o item selecionado..

Se ainda tiver problemas me contacte em cabelo.uni@uol.com.br

sem mais

Cabelo


GOSTEI 0
POSTAR