terça-feira, 27 de março de 2018

Como formatar field do tipo Float em run time no Delphi?

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

PHP para iniciantes - Vídeo #1