Fórum dbcombo box - campo value #315768

12/03/2006

0

pessaol..eu estou usando o dbcombobox em um sistema...

no campo SEXO eu tenho as opções MASCULINO - FEMININO

porém quando for salvar as informações no banco de dados, eu gostaria que fosse somente M - F


como faço?


Rafael Santana

Rafael Santana

Responder

Posts

12/03/2006

Mdm

Vc pode usar os eventos OnGeText e OnSetText do Field.

[b:8398f77cce]OnGetText[/b:8398f77cce]
  if (Sender.Value = ´M´) then Text := ´Masculino´;
           if (Sender.Value = ´F´) then Text := ´Feminino´;


[b:8398f77cce]OnSetText[/b:8398f77cce]
  if (Text = ´Masculino´) then Sender.Value := ´M´
           if (Text = ´Feminino´) then Sender.Value := ´F´


[]s


Responder

Gostei + 0

12/03/2006

Marco Salles

pessaol..eu estou usando o dbcombobox em um sistema... no campo SEXO eu tenho as opções MASCULINO - FEMININO porém quando for salvar as informações no banco de dados, eu gostaria que fosse somente M - F


Não ha problema , isto e facil de ser realizado.. Voce deve usar o evento
onsettex do campo (no caso parece ser estado civil)

OnSetText é o momento que nos temos a oportunidade de pegar a informação que esta vindo da tela do usuario(Controle data Ware No Caso o DbCombobox) antes que esta valor chegue de fato ao TFiled..
Nesse momento podemos fazer testesde validaçoes , formataçoes , ocultar determinados valores gerar exceçoes e assim vai...

pode tentar assim

procedure TForm1.Table1TelefoneSetText(Sender: TField; const Text: String);
begin
try
  if text = ´Masculino´ Then
    sender.AsString:=´M´
  else
    if text = ´Feminino´ then
      sender.AsString:=´F´
    else
       raise exception.create (´Error´); 
     //gera uma exceção...
      //pode aqui gerar uma exceção com raise
      //isto é opcional , se seu DbCombobox tiver sempre 
     //o mesmo valores fixos , acho que não sera necessário
except
on e:exception do
  begin
    //fazer o que tem que fazer..como apresntera mensagem ,
    //corriigir se quiser , efeito sonoro e por ai vai
  end;
end;



Responder

Gostei + 0

12/03/2006

Adriano Santos

Vc pode usar os eventos OnGeText e OnSetText do Field. [b:227d2aeb52]OnGetText[/b:227d2aeb52]
  if (Sender.Value = ´M´) then Text := ´Masculino´;
           if (Sender.Value = ´F´) then Text := ´Feminino´;
[b:227d2aeb52]OnSetText[/b:227d2aeb52]
  if (Text = ´Masculino´) then Sender.Value := ´M´
           if (Text = ´Feminino´) then Sender.Value := ´F´
[]s


Existem diversas maneiras de fazer isso. A dica do [b:227d2aeb52]MDM[/b:227d2aeb52], acredito que seja a mais simples, porém você pode gravar direto no campo também:

  case ComboBox1.ItemIndex of
    0: Query.FieldByName(´CAMPO_SEXO´).AsString := ´M´;
    1: Query.FieldByName(´CAMPO_SEXO´).AsString := ´F´;
    -1: ShowMessage(´O combobox não foi selecionado.´);
  end;


Como disse, existem diversas maneiras. Esta foi só pra ilustrar.


Responder

Gostei + 0

12/03/2006

Marco Salles

No delphi , existe diversas maneiras para quase tudo.. Mas tb existe a mais correta . E para o caso do rafael miguel santana ha mais correta e usar os eventos onSettext e onGettext do campo....

OnSetTexte para gravar no referido formato e OnGetText para Ler no referido formato. Mas para usar este eventos , devemos usar componetes DataWare(Dbcombobox por exemplo) associados ao campo ,para não ter ficar usando digitação extra .


Responder

Gostei + 0

12/03/2006

Rafael Santana

valeu galera...obrigado pelas ajudas...valeu mesmo

COMO FAÇO PARA DAR UM SETFOCUS em um campo do DBGRID?


Responder

Gostei + 0

12/03/2006

Marco Salles

COMO FAÇO PARA DAR UM SETFOCUS em um campo do DBGRID?


entre outros pode ser fazer

d
bgrid1.SelectedIndex:=valorDaColunaQueseQuer
//começa do zero


porem para voce ver o foco é necessario que algumas configuraçoes da Grid seje determinadas.. Por exemplo , se voce tiver a grid com os campos todo azulado voce não vera nada... Voce deve deixar a grid com apenas um campo azulado , para voce ver o efeito da instrução

em outras palavras : No objeto inspector em Options faça
DgAlwaysShowselect:=True e dgRowselect:=False; e

boa sorte


Responder

Gostei + 0

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

Aceitar