Combobox Retornar valor cadastrado no Banco de Dados

Delphi

29/09/2014

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?
Marlon Minotti

Marlon Minotti

Curtidas 0

Respostas

Eduardo Silva.

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
GOSTEI 0
POSTAR