Acrescer colunas no dbgrid delphi 7

Delphi

18/06/2015

Pessoal, dentro de um form, coloco um dbgrid ligado a uma tabela no firebird diretamente. Por exemplo, tabela A, com os campos ID,Qtde,Preco. Porém nesta tabela não tem a descricao do produto, pois a descricao esta na tabela b. Como posso adicionar o campo descricao ou qualquer outro campo neste dbgrid, mesmo que para alimenta-lo eu o faça em tempo de execução ???
Carlos Cabral

Carlos Cabral

Curtidas 0

Respostas

Dorivan Sousa

Dorivan Sousa

18/06/2015

que objeto voce ta utilizando para acessar os dados?

se voce estiver usando algum objeto de query é so voce fazer o join no sql.

por exemplo
tabela produtos
id, descricao

tabela produtos_vendas
id, id_produto, qtd, preco

select produtos_vendas.id, produtos_vendas.id_produto, produtos.descricao, produtos_vendas.qtd, produtos_vendas.preco
from produtos_vendas
inner join produtos on (produtos.id = produtos_vendas.id_produto) /
GOSTEI 0
Carlos Cabral

Carlos Cabral

18/06/2015

Ola Dorivan. Eu utilizo para a conexão o dbconnections, fazendo a sequencia sql dataset, datasetprovider e clientdataset, todos atravez de um datamodule com sqlconnection. No sqldataset eu ja declaro a select Command. Em alguns forms eu altero a select em tempo de execução, principalmente quando tenho itens inativos que nao devem ser mostrados. Nunca trabalhei com o inner join. Portanto não sei como fazer. Estou postando as tabelas para ter ciencia melhor.

Tabela Produtos
Campos: IDPRODUTO Integer e chave primaria
DESCRICAO String
FANTASIA String
e outros

Tabela ComposicaoItens
Campos: IDCOMPOSICAO Integer e chave primaria
IDPRODUTO Integer
QUANTIDADE Float
UNITARIO Currency

No form, criei um DBGrid com DataSource: ComposicaoItens

Obviamente irá aparecer somente as colunas desta tabela.

A idéia é incluir uma coluna com a DESCRICAO e FANTASIA que esta na tabela de produtos.

Espero ter explicado legal

Obrigado
GOSTEI 0
Dorivan Sousa

Dorivan Sousa

18/06/2015

na tabela composicaoitens vc vai relacionar com a tela produtos.. vc usa o sql dataset, datasetprovider e clientdataset.
no sql dataset vc hj deve ter
code]
select
idcomposicao,
idproduto,
quantidade,
unitario
from
composicaoitens
[/code]

ai muda pra
select
  composicaoitens.idcomposicao,
  composicaoitens.idproduto,
  produtos.descricao as descricaoproduto,
  composicaoitens.quantidade,
  composicaoitens.unitario
from 
  composicaoitens
inner join produtos on (produtos.idproduto = composicaoitens.idproduto)


entendeu?

aqui tem um post sobre join
https://www.devmedia.com.br/explorando-os-tipos-de-join-parte-i/2507
ou esse q eu aprendi uns termos novos
https://www.devmedia.com.br/sql-join-entenda-como-funciona-o-retorno-dos-dados/31006

bem interessantes vale a pena ler.
GOSTEI 0
Carlos Cabral

Carlos Cabral

18/06/2015

Vou testar. Muito Obrigado pela ajuda. Abraços
GOSTEI 0
POSTAR