Campo Combobox na DBGrid

07/01/2013

0

Boa Tarde galera

Seguinte, tenho um campo combobox o qual salvo apenas o índice no banco. Quando trago o valor em uma DBGrid conectada em um datasource > clientdataset, o valor trazido na DBGrid é, obviamente, o índice que está no banco, não o valor em texto. Há alguma forma de fazer isso, trazer a informação em texto na DBGrid e quando alterar salvar o index no banco??

Grato!
União Ltda

União Ltda

Responder

Posts

07/01/2013

Integral Ltda

Sim, e pode ser feito de varias formas.

Umas das formas é com um campo do tipo InternalCalc, veja os passos a seguir:

A) Crie um field no seu clientdataset (duplo click no clientdataset, e adicione o campo add new field ou ctrl+N)
Defina um nome para o field, o tipo que no seu caso me parece ser string, o tamanho e no field type selecione a opção InternalCalc.

B) No evento oncalcfield do Clientdataset insira um codigo similar a esse:


case clientdataset1.fieldbyname('campo_que_contemindex').AsInteger of
 0:  clientdataset1.fieldbyname('campo_criado_internalcalc').AsString := 'Tipo 0';  //altere aqui a para sua descrição 
 1:  clientdataset1.fieldbyname('campo_criado_internalcalc').AsString := 'Tipo 1';  //altere aqui a para sua descrição 
 3:  clientdataset1.fieldbyname('campo_criado_internalcalc').AsString := 'Tipo 2';  //altere aqui a para sua descrição 
 //e assim por diante de acordo com seus index
end;



Espero ter ajudado.

Rodrigo Alves.
Responder

07/01/2013

Integral Ltda

Esqueci de mencionar para que voce adicione o campo internalcalc no dbgrid ou invés do "index".
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar