Fórum Como mudar o valor dos dados de uma coluna no DBGrid #192717
04/11/2003
0
Tenho um DBGrid que mostra o resultado de uma tabela em Oracle.
Esta tabela é de cadastro de usuários.
Sendo que gostaria de colocar uma máscara para mostrar na coluna ´tipo de acesso´, em vez de ´A´ ou ´U´, mostrar ´Administrador´ ou ´Usuário´, mas no Oracle deve ser gravado ´A´ ou ´U´. Apenas para facilitar o usuário.
Como poderia fazer isto?
Obrigado
Bclr
Curtir tópico
+ 0Posts
04/11/2003
Koplin
+- assim
If sender.value=´U´ then text = ´Usuário´ else
If text =´A´ ´Administrador´ else
text:=´Indefinido´;
Gostei + 0
05/11/2003
Bclr
Não entendi como e onde vou usar esta propriedade setText e os If´s ???
Gostei + 0
05/11/2003
Koplin
procedure TForm1.Query1NOMESetText(Sender: TField; const Text: String);
begin
If sender.value=´U´ then text = ´Usuário´ else
If text =´A´ ´Administrador´ else
text:=´Indefinido´;
end;
A evento OnSetText esta no campo nome da query1 neste exemplo
Voce precisa acessar o evento OnSetText do campo ´nome´.
Sender é uma variavel do tipo TField que é o campo em si.
Text é uma variavel string que modifica o que aparace no componente visual (TDBEdit ou TDBgrid), mas não altera o valor do campo. É uma ´máscara´ definida por voce.
O que fazemos:
Se o valor do campo (sender.value)=´U´ - no seu caso e no exemplo-
O text sera ´USUÁRIO´ ou seja: sempre que o valor do campo tiver um determinado valor ele mostrará outro (definido por voce)
o exemplo:
valor do campo=>valor exibido
Se ´U´=> ´Usuário´
Se´A´=> ´Administrador´
se outra letra=>´Indefinido´;
Para acessar a propriedade do campo, selecione-o na lista de campos do dataset e procure o evento OnSetText
Se ainda persistirem dúvidas, não exite. Pergunte.
Gostei + 0
05/11/2003
Bclr
Já olhei a lista de todos os eventos do componente TQuery, mas não aparece este evento.
Não entendi quando você diz para eu ver este evento no campo nome, pois os eventos são relacionados de acordo com o componente.
Estou usando o Delphi 5.
Obrigado pela atenção
Gostei + 0
05/11/2003
Koplin
O editor de TFields aparece.
Selecione o Field desejado
tecle f11 para ver o Object Inspector
Selecione a aba Events
Localize o evento OnSetText
O envento é do campo e não do componente.
Obvio que o campo deve estar na lista
Para tal, botão direito na lista e Add All Fields
Estou supondo que a sql esta dentro do TQuery e portanto voce possa abri-lo em Design Time e desta forma prover o TQuery com os TFields
Gostei + 0
06/11/2003
Bclr
Desculpe estar sendo chato, mas agora está dando o seguinte erro
´Left side cannot be assigned to´
na variável Text abaixo:
if Sender.value = ´U´ then
Text := ´Usuário´
else
if Sender.value = ´A´ then
Text := ´Administrador´
else
Text := ´Indefinido´;
ou seja, não está aceitando atribuir algum valor a Text
o que faço?
Gostei + 0
06/11/2003
Koplin
Um dia vai passar a alguém o que sabe, como ainda me ensinam.
Quando nos dispomos a responder a alguem, na minha opinião, assumimos um compromisso, que é o de esclarecer até onde for possivel.
O evento e OnGetText e não OnSetText como eu afirmei.
Desculpe o lapso.
Gostei + 0
06/11/2003
Bclr
Muito obrigado pela ajuda
É de pessoas como você que o fórum precisa, pessoas que procuram esclarecer todas as dúvidas.
T+
Gostei + 0
06/11/2003
Koplin
Boa sorte, e qualquer coisa...
Gostei + 0
15/06/2006
Elbesh
VALEW CARA vc salvo minha vida eu tava looocccooo atras de como botar tipo uma mascara no DbGrid e naum sabia... eu queria q ele tivesse uma função tipo Caption q naum eh pra Injecao de Texto no banco de dados e sim pra exibicao de texto somente... mas com isso q vc falo ai no topico arrebento cara... VALEW muiiitooo msm!!!!!
Gostei + 0
10/12/2016
Ricardo Back
Um dia vai passar a alguém o que sabe, como ainda me ensinam.
Quando nos dispomos a responder a alguem, na minha opinião, assumimos um compromisso, que é o de esclarecer até onde for possivel.
O evento e OnGetText e não OnSetText como eu afirmei.
Desculpe o lapso.
olá Koplin, onGetText funciona, mas quando altero para ediçao do campo em um formulario que fica em uma tabSheet ao lado ele nao traz o radioGroup seleconado... antes trazia. o que eu faço? desfazer a alteração? Como?
Gostei + 0
30/01/2017
Carlos Eduardo
exemplo
TPesquisa = class(FDQuery)
Procedure exemplo(...);
end;
como vou implementar o evento rs :)?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)