Re: [delphi-br] Re: Retornar chave primaria de um combobox

2008-12-15 Por tôpico Coutinho - Yahoo
Bom dia Ricardo!

Então você vai ter de passar para eles a idéia de fazer na unha...

Seleciona no combo o nome, dá um Locate( pois vai pesquisar por um capo 
outro...), achando armazena numa variável a PK, depois vai no outro 
arquivo, faz a mesma coisa, junta as duas informações e faz por útimo o 
que vc quer que eles façam com as duas informações...

O commbobox é apenas para vc selecionar o valor que vai colocar no 
locate... não esqueça que o valor de chave de pesquisa do locate é 
variant e não string...
aí... parafraseando alguns colegas... parece ser um pouco POG, não???
Mas como os alunos tem um nível bem elementar ainda... vai... mas que 
vai dar um trabalho retado, isso vai!!!

Sds
Emanuel Coutinho


Rogerio Rios Pessanha escreveu:

 Bom Dia Emanuel.
 Bem, o DBLOOKUPCOMBOBOX(DATASOURCE-DATAFIELD-LISTSOURCE-LISTFIELD -
 KEYFIELD- ele altera os dados diretamente na tabela , ok ? Ou não ?
 Se altera não me serve) eu conheço mas acho que não serve. Deixa eu
 tentar explicar :
 Eu queria que o usuario selecionasse em 1 combo o nome do aluno e em
 outro combo o livro que o aluno pegou. E aí eu queria usar os campos
 PK da tabela aluno e livro de acordo com o que foi escolhido nos
 combos ( quando eu digo usar os campos PK quero dizer usá-los para
 filtragem - filter ou select - ou fazer buscas com findkey por
 exemplo). Os alunos não sabem TQUERY-SELECT então passar algo bem
 simples as vezes dá mais trabalho do que algo avançado.

 --- Em delphi-br@yahoogrupos.com.br 
 mailto:delphi-br%40yahoogrupos.com.br, Coutinho - Yahoo
 emanuelcouti...@... escreveu
 
  Colega...
  O componente dbLookupCombo faz isso...
  Se vc está fazendo um campo lookup, que na minha opinião é a melhor
  pedida, ao arrastar o TField da janelinha de campos da tabela para
 o
  form, ele já trás um pomponente lookupCombobox, para vc poder
 selecionar
  pelo nome do do aluno, escrevendo no campo que vc está editando a
  matrícula, ou chave primária que está usando na sua tabela.
  Você sabe definir um campo lookup na sua tabela?
 
  Sds
  Emanuel Couitnho
 
 
  Rogerio Rios Pessanha escreveu:
  
   Tenho um combobox abastecido com o campo nomealuno. Queria que ao
 ser
   selecionado algum item desse combo o mesmo me retornasse não o
 nome do
   aluno mas a CHAVE PRIMARIA da tabela em questão ( campo
 ncodaluno).
  
  
 

  




Re: [delphi-br] Re: Retornar chave primaria de um combobox

2008-12-13 Por tôpico Ricardo César Cardoso
Você está trazendo os dados de algum banco de dados?

Eu uso a seguinte técnica para fazer isso que você quer:

1) Crio um tipo de dados que equivale ao que quero representar 
2) Crio uma função que seleciona os dados da tabela (por exemplo o ID e a 
Descrição)
3) A saída dessa função é preencher um array (por exemplo) onde cada item do 
array é do tipo criado no passo 1
4) Com os dados selecionados, crio uma função que alimenta o ComboBox com os 
itens que carreguei no array do item 3
5) No ComboBox faço altero o evento OnSelectItem para buscar o ID do item, com 
base na descrição do item, dentro do array que criei.

É claro que dá pra fazer muitas otimizações dentro desse modelo. Se você não 
está trabalhando ainda com bancos de dados este acho que é um dos melhores 
jeitos de trabalhar. 

Dá pra fazer a mesma coisa que fiz, mas usando ClientDataSet. Simplifica bem 
mais o processo que passei pois vc usa funções disponíveis no proprio 
TClientDataSet ao invés de um tipo específico (criado no passo 1), criar e 
preencher um array (passos 2 e 3) e nos passos 4 e 5 você pode fazer uma 
alteração significativa, pois pode usar as funções de busca que já existem ao 
invés de inventar as suas próprias.

Tanto em um quanto em outro modelo, dá pra achar material bem detalhado no 
Google. Basta procurar por ClientDataSet em memória ou ClientDataSet sem banco 
de dados.

[]'s
Ricardo.

_

Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante!

--- Em sáb, 13/12/08, Rogerio Rios Pessanha rogerio_r...@yahoo.com.br 
escreveu:
De: Rogerio Rios Pessanha rogerio_r...@yahoo.com.br
Assunto: [delphi-br] Re: Retornar chave primaria de um combobox
Para: delphi-br@yahoogrupos.com.br
Data: Sábado, 13 de Dezembro de 2008, 8:33











Bom Dia Emanuel.

Bem, o DBLOOKUPCOMBOBOX( DATASOURCE- DATAFIELD- LISTSOURCE- LISTFIELD -

KEYFIELD- ele altera os dados diretamente na tabela , ok ? Ou não ? 

Se altera não me serve) eu conheço mas acho que não serve. Deixa eu 

tentar explicar :

Eu queria que o usuario selecionasse em 1 combo o nome do aluno e em 

outro combo o livro que o aluno pegou. E aí eu queria usar os campos 

PK da tabela aluno e livro de acordo com o que foi escolhido nos 

combos ( quando eu digo usar os campos PK quero dizer usá-los para 

filtragem - filter ou select - ou fazer buscas com findkey por 

exemplo). Os alunos não sabem TQUERY-SELECT então passar algo bem 

simples as vezes dá mais trabalho do que algo avançado.



--- Em delphi...@yahoogrup os.com.br, Coutinho - Yahoo 

emanuelcoutinho@ ... escreveu



 Colega...

 O componente dbLookupCombo faz isso...

 Se vc está fazendo um campo lookup, que na minha opinião é a melhor 

 pedida, ao arrastar o TField da janelinha de campos da tabela para 

o 

 form, ele já trás um pomponente lookupCombobox, para vc poder 

selecionar 

 pelo nome do do aluno, escrevendo no campo que vc está editando a 

 matrícula, ou chave primária que está usando na sua tabela.

 Você sabe definir um campo lookup na sua tabela?

 

 Sds

 Emanuel Couitnho

 

 

 Rogerio Rios Pessanha escreveu:

 

  Tenho um combobox abastecido com o campo nomealuno. Queria que ao 

ser

  selecionado algum item desse combo o mesmo me retornasse não o 

nome do

  aluno mas a CHAVE PRIMARIA da tabela em questão ( campo 

ncodaluno).

 



 

















  Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]