Ir para conteúdo
Fórum Script Brasil
  • 0

Exibindo Dados Em Um Dbedit


Lucifer

Pergunta

Em uma tabela chamada FUNCIONARIO possui vários campos, entre eles o estado (UF), existe uma tela que apenas o administrador tem acesso para criar um novo funcionário, então na inserção do UF é utilizado um DBLookupCOmboBox que salva o código do UF que é a chave primária na tabela FUNCIONARIO. Mas existe uma tela que outros possuem acesso, mas não podem alterar nada, apenas vizualizar. Neste caso o DBLookup perde o sentido dando lugar a um DBEdit. Como eu faço para de acordo com o código do uf salvo na tabela CLIENTE, esse DBEdit busque o nome do UF na tabela UF?

Obs: Não estou utilizando query ou comandos SQL, apenas ADOTable, o Bando de dados: Access.

falou

Editado por Lucifer
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Guest --felipe --
Em uma tabela chamada FUNCIONARIO possui vários campos, entre eles o estado (UF), existe uma tela que apenas o administrador tem acesso para criar um novo funcionário, então na inserção do UF é utilizado um DBLookupCOmboBox que salva o código do UF que é a chave primária na tabela FUNCIONARIO. Mas existe uma tela que outros possuem acesso, mas não podem alterar nada, apenas vizualizar. Neste caso o DBLookup perde o sentido dando lugar a um DBEdit. Como eu faço para de acordo com o código do uf salva na tabela cliente, esse DBEdit busco o nome do UF na tabela UF?

falou

nesse caso tens que mudar a propriedade SQL do seu Tdataset

e é só relacionar o DBEdit com o datasource

e o datasource com o TDataset

o processo é o mesmo só muda a sql

exemplo:

select FUNCIONARIOS.*, UF.uf
from FUNCIONARIOS,UF
where FUNCIONARIOS.coduf = UF.coduf

não esqueça de dizer ql "banco" está usando

Link para o comentário
Compartilhar em outros sites

  • 0
Em uma tabela chamada FUNCIONARIO possui vários campos, entre eles o estado (UF), existe uma tela que apenas o administrador tem acesso para criar um novo funcionário, então na inserção do UF é utilizado um DBLookupCOmboBox que salva o código do UF que é a chave primária na tabela FUNCIONARIO.
Ou você errou o nome da última tabela ou não mencionou que a chave é composta, porque numa tabela de funcionário, utilizar UF como chave primária é problema na certa - "Key violation". As chaves primárias não podem se repetir em uma tabela.

Mas existe uma tela que outros possuem acesso, mas não podem alterar nada, apenas vizualizar.
se a tela for a mesma, mantendo o TDBLookupBomboBox, não seria mais simples apenas desabilitar os campos ou deixar sua tabela ReadOnly (conforme o caso)?

Neste caso o DBLookup perde o sentido dando lugar a um DBEdit. Como eu faço para de acordo com o código do uf salvo na tabela CLIENTE, esse DBEdit busque o nome do UF na tabela UF?
Uma opção seria criar um campo Lookup.

A sugestão é a seguinte:

- Precisaremos de um dataset do tipo query para consultar cada tabela referenciada (UF) onde, deverá ser incluso na cláusula SELECT o campo de referência e o campo de descrição (p.e., UF, DscUF);

- Agora, no dataset principal, faremos a referência a este dataset de consulta (lookup); Para isso, em design-time, acesse a lista de campos do dataset principal (duplo click no componente); Agora, adicione um novo campo (botão direito -> New field...); Em Name, vamos definir DscUF seguido por Type igual a String e Size conforme definido o referido campo na sua tabela de UF; A seguir, definimos o tipo deste campo como sendo Lookup; Mais abaixo, fazemos a vinculação à consulta definindo KeyFields com o campo de referência a tabela UF, DataSet apontando para a consulta à UF, em Lookup Keys selecionamos o campo referenciado e em Result Field selecionamos o campo a ser apresentado - DscUF;

Com isto, você tem agora um campo DscUF no seu dataset principal (o ADOTable funcionario) que poderá ser associado a um TDBEdit.

Mesmo assim, a questão de não permitir edição em um componente do tipo data-aware (os TDB...) estará vinculado ao fato de o dataset estar ou não no modo ReadOnly ou o respectivo componente com suas propriedades Enabled (false) ou ReadOnly(true) devidamente setadas.

Obs:

Antes de o dataset principal ser aberto, as consultas lookup's já devem estar abertas;

não esqueça de dizer ql "banco" está usando

felipe, ele já disse:

Obs: Não estou utilizando query ou comandos SQL, apenas ADOTable, o Bando de dados: Access.
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...