Fórum Alterar campo no dbgrid #188267
13/10/2003
0
NF FlagNF Dta
1254 1 10/10/2003
1256 1 5/10/2003
1257 0 10/10/2003
Queria que o dbgrid, no campo flagnf, qdo for ´1´ aparecesse ´SIM´ e qdo for ´0´ aparecesse ´NÃO´.
Fiz assim :
if qNF.FieldByName(´flagnf´).AsString = ´1´ then
DBGrid3.Columns[2].FieldName := ´SIM´
else
DBGrid3.Columns[2].FieldName := ´NÂO´;
Não deu certo.
Julianomc
Curtir tópico
+ 0Posts
13/10/2003
Rafael Heise
1) Desenhar direto na grid no evento OnDrawCell testando o valor do registro Tabela.FieldByName(Campo) = 1 then
grid.canvas.textout(..,´Sim´) ou grid.canvas.textout(..,´Não´)
2) Ou usar um campo calculado. Para isso, na tabela você precisa adicionar todos os campos, adicionar um campo calculado e então no OnCalcField fazer if Campo = 1 then Calculado := ´Sim´ senão Calculado := ´Não´
abraços
Gostei + 0
14/10/2003
Julianomc
Gostei + 0
14/10/2003
Julianomc
Gostei + 0
14/10/2003
Rafael Heise
Você está passando como parâmetros Left e Top 0 e 0 (zeros).
Não pode... dessa forma, considerando a grid uma grade ou um gráfico, na posição 0,0 ele desenhará.
Você tem que usar a posição que vem com o Rect.
Se você quer centralizado
Use
Rect.Left + ((Rect.Right - Rect.Left - Canvas.TextWidth(´Sim´)) div 2);
e
Rect.Top + ((Rect.Bottom - Rect.Top - Canvas.TextHeigth(´Sim´)) div 2);
Isso vai retornas as posições que você tem que passar no TextOut.
Não sei se as palavras estão escritas certas, mas é mais ou menos isso.
Veja no Code Inside.
Se você tivesse olhado no help veria isso...
boa sorte...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)