Fórum Mostrar dados em uma dbgrid #402594

08/06/2011

0

Tenho uma dbgrid que mostra os dadios de uma tabela de produtos, porem ela esta linkada com uma tabela de unidade e quando link no adotable a unidade mostra somente o codigo da unidade e nao a descrição como faço para alterar isso
Daniel

Daniel

Responder

Posts

08/06/2011

Eliel Martins

  Olá Daniel !


  Ficou um pouco confuso a sua descrição do seu problema, mas pelo que entendi você quer que mostre em uma grid os dados do produto mais a descrição da unidade, se for isso, você precisa utilizar uma Query e fazer o um SELECT da seguinte forma :

  
 
         SELECT P.CODIGO_PRODUTO, P.NOME_PRODUTO, U.NOME_UNIDADE, U.CODIGO_UNIDADE
            FROM PRODUTO P
           INNER JOIN UNIDADE U ON (P.CODIGO_UNIDADE = U.CODIGO_UNIDADE)
   


   Ai você liga essa query em um DataSource e liga no DBGrid, foi isso que entendi do seu tópico, se não for isso, detalha mais para eu tentar te ajudar, blz ?

   Espero ter ajudado em alguma coisa, abraço.


   Eliel G. Martins
Responder

Gostei + 0

08/06/2011

Daniel

  Olá Daniel !


  Ficou um pouco confuso a sua descrição do seu problema, mas pelo que entendi você quer que mostre em uma grid os dados do produto mais a descrição da unidade, se for isso, você precisa utilizar uma Query e fazer o um SELECT da seguinte forma :

  
 
         SELECT P.CODIGO_PRODUTO, P.NOME_PRODUTO, U.NOME_UNIDADE, U.CODIGO_UNIDADE
            FROM PRODUTO P
           INNER JOIN UNIDADE U ON (P.CODIGO_UNIDADE = U.CODIGO_UNIDADE)
   


   Ai você liga essa query em um DataSource e liga no DBGrid, foi isso que entendi do seu tópico, se não for isso, detalha mais para eu tentar te ajudar, blz ?

   Espero ter ajudado em alguma coisa, abraço.


   Eliel G. Martins
Quando vou cadastrar o produto tem um campo de cadastro de unidade que utilizo outra tabela (utilizo uma dblookupcombobox linkada com a outra tabela) e salvo o codigo da unidade e nao a descrição, no produto visualizo normal esta descrição, porem quando vou linkar a tabela produto no dbgrid, na descrição unidade ela me mostra o codigo da unidade e nao a descrição dela.
Responder

Gostei + 0

08/06/2011

Eliel Martins

 
  Daniel, então Select que te passei vai funcionar perfeitamente, porque na tabela de produto você grava é código da unidade e não a descrição, o que você deve fazer para linkar com a DBGrid é não utilzar Table e sim uma Query, com isso você faz o SQL que te passei fazendo o JOIN com a tabela Unidade, com isso você terá o produto + a descrição da unidade. Por isso que indiquei para você usar a Query, onde na consulta você faz o relacionamento entre as tabelas.

  Eliel G. Martins
Responder

Gostei + 0

13/06/2011

Daniel

 
  Daniel, então Select que te passei vai funcionar perfeitamente, porque na tabela de produto você grava é código da unidade e não a descrição, o que você deve fazer para linkar com a DBGrid é não utilzar Table e sim uma Query, com isso você faz o SQL que te passei fazendo o JOIN com a tabela Unidade, com isso você terá o produto + a descrição da unidade. Por isso que indiquei para você usar a Query, onde na consulta você faz o relacionamento entre as tabelas.

  Eliel G. Martins
    Boa noite Eliel,   Não entendi muito bem, então vou descrever meu cenário aqui...   Tenho duas tabelas...   TABELAPRODUTO Codigo Produto Unidade Valor ICMS AUTONUM TEXTO NUMERO MONETARIO TEXTO     TABELAUNIDADE Codigo Unidade AUTONUM TEXTO     No campo UNIDADE da TABELAPRODUTO, fica armazenado valor do campo CODIGO da TABELAUNIDADE...   Então, vamos imaginar o seguinte:   TABELAPRODUTO Codigo Produto Unidade Valor ICMS 1 SOLA 1 2,30 12% 2 METAL 4 0,30 12% 3 COURO 2 38,00 12%     TABELAUNIDADE Codigo Unidade 1 PR 2 M2 3 KG 4 PC   A tabela produtos, está sendo exibida em um DBGrid, porém, quando o conteúdo é exibido, o valor do campo Unidade, obviamente é o código da unidade, não o nome, visto que no campo está gravado o seu código.   Preciso, de alguma forma fazer com que ele busque na TABELAUNIDADE o nome da UNIDADE e exiba no lugar do código....   fico no aguardo,  
Responder

Gostei + 0

16/06/2011

Adalton Goncalves

Vamos ver se entendi:

Você está usando o DBLookupComboBox e ele está mostrando o codigo, que é o que está sendo salvo na tabela,mas vc necessitaria da UNIDADE.

Se todos os dados foram corretamente alterados no DB, utilizando os Joins devidos, no delphi vai ter de direcionar da seguinte forma.

na propriedade de seu DBLookupComboBox:

ListSource - Ligar a DataSource da Tabela ao qual vai Ter o registro selecionado;

ListField - Ligar o campo que será listado quando o usuário abrir a janela para seleção do registro;

KeyField - Ligar o campo de ligação entre as duas tabelas, ao qual terá o seu valor enviado para gravação.


DataSource: Ligar o DataSource da tabela PRODUTO
Data Field: Ligar tabelaProduto.Unidade
ListSource: Ligar o DataSource da tabela UNIDADE
KeyField: Selecione o Field tabelaUNIDADE.CODIGO
ListField: Selecione o Field tabelaUNIDADE.UNIDADE


Espero ter ajudado.



Responder

Gostei + 0

16/06/2011

Daniel

Vamos ver se entendi:

Você está usando o DBLookupComboBox e ele está mostrando o codigo, que é o que está sendo salvo na tabela,mas vc necessitaria da UNIDADE.

Se todos os dados foram corretamente alterados no DB, utilizando os Joins devidos, no delphi vai ter de direcionar da seguinte forma.

na propriedade de seu DBLookupComboBox:

ListSource - Ligar a DataSource da Tabela ao qual vai Ter o registro selecionado;

ListField - Ligar o campo que será listado quando o usuário abrir a janela para seleção do registro;

KeyField - Ligar o campo de ligação entre as duas tabelas, ao qual terá o seu valor enviado para gravação.


DataSource: Ligar o DataSource da tabela PRODUTO
Data Field: Ligar tabelaProduto.Unidade
ListSource: Ligar o DataSource da tabela UNIDADE
KeyField: Selecione o Field tabelaUNIDADE.CODIGO
ListField: Selecione o Field tabelaUNIDADE.UNIDADE


Espero ter ajudado.



na verdade o db esta funcionando perfeitamente ao visualizar os cadastros que fiz ele me mostra a unidade, porem em outro formulario de exclusao, onde mostro os dados atraves de uma dbgrid ele me traz o codigo. E minha duvida é na montagem do join, pois entendo muito pouci de sql 
Responder

Gostei + 0

16/06/2011

Daniel

Vamos ver se entendi:

Você está usando o DBLookupComboBox e ele está mostrando o codigo, que é o que está sendo salvo na tabela,mas vc necessitaria da UNIDADE.

Se todos os dados foram corretamente alterados no DB, utilizando os Joins devidos, no delphi vai ter de direcionar da seguinte forma.

na propriedade de seu DBLookupComboBox:

ListSource - Ligar a DataSource da Tabela ao qual vai Ter o registro selecionado;

ListField - Ligar o campo que será listado quando o usuário abrir a janela para seleção do registro;

KeyField - Ligar o campo de ligação entre as duas tabelas, ao qual terá o seu valor enviado para gravação.


DataSource: Ligar o DataSource da tabela PRODUTO
Data Field: Ligar tabelaProduto.Unidade
ListSource: Ligar o DataSource da tabela UNIDADE
KeyField: Selecione o Field tabelaUNIDADE.CODIGO
ListField: Selecione o Field tabelaUNIDADE.UNIDADE


Espero ter ajudado.



na verdade o db esta funcionando perfeitamente ao visualizar os cadastros que fiz ele me mostra a unidade, porem em outro formulario de exclusao, onde mostro os dados atraves de uma dbgrid ele me traz o codigo. E minha duvida é na montagem do join, pois entendo muito pouci de sql 
Responder

Gostei + 0

16/06/2011

Wilson Junior

Faça o SQL como o Eliel colocou.
Qualquer coisa olhe este link http://www.luis.blog.br/join-ou-juncoes-sql-inner-left-right-e-full-outer-join.aspx

Espero ter colaborado.
Responder

Gostei + 0

05/05/2013

José

Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar