Combobox Retornar valor cadastrado no Banco de Dados
Boa noite pessoal, o meu problema é o seguinte:
Eu tenho um formulário de cadastro de atendimento. Neste cadastro de atendimento eu tenho um combobox que tem 4 tipos de prioridades, Alta, Media, Baixa, Planejada.
Ao salvar no banco de dados eu salvo o ItemIndex do combobox ao invés do text.
Agora imagine o seguinte cenário: Estou tentando editar um atendimento, e ao trazer os dados do banco eu faço um select com iif para se a prioriodade for = 0 ele receba "Alta" e assim até o numero 3 que é Planejada. Entenderam?
Voltando, daí quando eu tento editar o meu select traz o nome Alta, Media, Baixa ou Planejada. E eu quero que no meu combobox fique selecionado o mesmo, entenderam? Se eu sempre trouxesse o número seria fácil, mas como eu trago o nome é meio complicado, eu acho. Tipo, se fosse o número era fácil
ComboBox1.ItemIndex := qryAtendimentosPRIORIDADE.Value;
Assim funcionaria, mas não quero assim.
Alguém ajuda?
Eu tenho um formulário de cadastro de atendimento. Neste cadastro de atendimento eu tenho um combobox que tem 4 tipos de prioridades, Alta, Media, Baixa, Planejada.
Ao salvar no banco de dados eu salvo o ItemIndex do combobox ao invés do text.
Agora imagine o seguinte cenário: Estou tentando editar um atendimento, e ao trazer os dados do banco eu faço um select com iif para se a prioriodade for = 0 ele receba "Alta" e assim até o numero 3 que é Planejada. Entenderam?
Voltando, daí quando eu tento editar o meu select traz o nome Alta, Media, Baixa ou Planejada. E eu quero que no meu combobox fique selecionado o mesmo, entenderam? Se eu sempre trouxesse o número seria fácil, mas como eu trago o nome é meio complicado, eu acho. Tipo, se fosse o número era fácil
ComboBox1.ItemIndex := qryAtendimentosPRIORIDADE.Value;
Assim funcionaria, mas não quero assim.
Alguém ajuda?
Marlon Minotti
Curtidas 0
Respostas
Eduardo Silva.
29/09/2014
Você pode utilizar o evento OnGetText do campo em questão, exemplo:
procedure TForm1.qryAtendimentosPRIORIDADEGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if DisplayText then
begin
case Sender.AsInteger of
0: Text := 'Alta';
1: Text := 'Média';
3: Text := 'Baixa';
4: Text := 'Planejada';
else
Text := '';
end;
end
else
Text := Sender.AsString;
end;
Caso precise do processo inverso, você pode utilizar o evento OnSetText
abs
Eduardo Belo
procedure TForm1.qryAtendimentosPRIORIDADEGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if DisplayText then
begin
case Sender.AsInteger of
0: Text := 'Alta';
1: Text := 'Média';
3: Text := 'Baixa';
4: Text := 'Planejada';
else
Text := '';
end;
end
else
Text := Sender.AsString;
end;
Caso precise do processo inverso, você pode utilizar o evento OnSetText
abs
Eduardo Belo
GOSTEI 0