Fórum Coluna do DBGrid com se fosse um componente com DBLookupList #231517

11/05/2004

0

Gostaria que ao ativar o form uma coluna do DBGrid exibisse o nome do itens
de uma tabela PK (chave primária) e não o código que foi gravado na tabela FK (chave estrangeira), tipo como se faz com o DBLookUpListBox
Exemplo:

Está assim no DBGrid:

-------------------------
| Componente Curricular |
-------------------------
|          1            |
|          32           |
|          4            |
|          3            |
|          1            |


Eu quero que apareça assim:
-------------------------
| Componente Curricular |
-------------------------
| Língua Portuguesa     |
| Matemática I          |
| História              |
| Geografia             |
| Língua Portuguesa     |



Chucky21

Chucky21

Responder

Posts

11/05/2004

Márcio Sousa

Qual o componente que você está usando?
Se for um table faça um campo lockup, se for uma query, faça o relacionamento na consulta SQL. Quanto ao ativar o form, coloque no activate, no show, no create... um código para controlar o conjunto de registros(Table, Query),(Open,Close)

Espero ter ajudado


Responder

Gostei + 0

11/05/2004

Chucky21

Estou usando ADOTable e não consegui seguir seu conselho, se tive um exemplo aí agradeço!

Valeu


Responder

Gostei + 0

13/05/2004

Márcio Sousa

Olá Chucky. Desculpe a Demora. Vamos Lá

Peguemos Um Banco de Dados Qualquer em Acces. Com Duas tabelas:
Funcionarios(Id,Nome,IdFuncao) e Funcao(IdFuncao,Descricao).
Coloco no projeto um AdoConnection, 2 AdoTable, 2 Data Source, 1 DbGrid, 1 Dbnavigator.
Após conectar com o Banco(ADOConnection), vou ao AdoTable e ativo normalmente(ADOConnection.TableName(Mestre e Detalhe),Active). Ao Colocar os Campos no AdoTable Mestre(Funcionario)(Clicar com o direito no AdoTable), escolho para inserir um novo campo. e aí configuro o meu campo lookup:
Name = Nome do novo Campo
Component = Nome do Componente relativo ao novo campo(Preenchido a medida que você preenche o Name)
Type = Como você quer uma descrição, aconselho o Tipo String
Size = Tamanho do Novo Campo


No FieldType escolha o Lookup, o quer irá habilitar os campos que estavam desabiltados

KeyFields = Nome do Campo da Tabela Mestre que fará o relacionamento(IdFuncao)
DataSet = DataSet da Tabela Detalhe(AdoTable2)
Lookup Keys = IdFuncao
Result Field = Descricao

E aí é só configurar o DbGrid Para mostrar somente esse novo campo
(Botão direito->Columns Editor)

Espero ter ajudado.


Responder

Gostei + 0

28/03/2007

Auberps

Galera,

Estou com um problema parecido esse. Até que o Lookup eu consigo fazer, só que quando eu coloco esse componente AdoTable como Detalhe de um outro componete Mestre, o lookup para de funcionar. O seja, quando eu seleciono o registro PAI (Combo), ocorre um erro ao carregar os registros filhos ( Na GRID) , onde eu carrego também o campo Lookup.

Já usando o componete TABLE do BDE isso não ocorre.

O que fazer ?

Atenciosamente,
Auber


Responder

Gostei + 0

28/03/2007

Auberps

Ah! Esqueci de falar.

O Probleme é quando dou um Append para liberar o componente para inserção. Ocorre a mensagem: ´ERRO DESCONHECIDO´.

Grato Novamente.


Responder

Gostei + 0

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

Aceitar