Quando criamos uma consulta em SQL usando qualquer componente que suporte este tipo de operação, no modo Design Time, automaticamente quando "ativamos" o componente e na sequência fazemos o conhecido "Add all Fields", trazendo assim todos campos da consulta, caso exista um campo "float" que tenha um valor "quebrado", é muito fácil formatar o campo diretamente:
Clicar no field > Clicar na propriedade "DisplayFormat" > definir uma formatação, '###,##0.00' por exemplo.
Ok!
Mas, e quando os campos são gerados obtidos dinamicamente, ou seja, a consulta SQL é "construída" e obtida em runtime, como fazer para formatar os campos "float"?
...exatamente...temos que pensar um pouco!
Mas para isso venho através deste post tentar ajudá-lo. Abaixo, segue o processo necessário para tratar a situação apresentada acima:
1º Dentro do método em que ocorro o "<Query>.Open" declare uma variável do tipo integer, neste exemplo vou declarar "loCT":
var loCT: Integer
2º Depois da linha de código "<Query>.Open" insira as seguintes linhas de código:
for loCT := 0 to pred( <Query>.FieldCount ) do
if <Query>.Fields[loCT].DataType in [ ftFloat ] then TNumericField( <Query>.Fields[loCT] ).DisplayFormat := '###,##0.00' ;
Desta forma, todos os fields que forem do tipo ftFloat serão formatados dinamicamente e o melhor, em runtime.
Espero que seja útil!
Até+
Nenhum comentário:
Postar um comentário