Campo Combobox na DBGrid

07/01/2013

2

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!
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
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira