Fórum Campo Combobox na DBGrid #432071
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!
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
Curtir tópico
+ 0
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:
Espero ter ajudado.
Rodrigo Alves.
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
Gostei + 0
07/01/2013
Integral Ltda
Esqueci de mencionar para que voce adicione o campo internalcalc no dbgrid ou invés do "index".
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)