Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Developer_Rodrigo

Trabalhando com 5 Casas Decimais no Delphi

Recommended Posts

 

 

Olá Pessoal,

 

 

Alguém já trabalhou com mais de 2 casas decimais no Delphi 2006?

Qdo digo mais de 2 casas decimais, quero dizer especificamente 5 casas decimais e qdo eu digo trabalhar com 5 casas decimais, quero dizer no sentido de fazer inserts utilizando TDbEdits, TSQLConnection, TSQLDataSet, TDataSetProvider, TClientDataSet com MS SQL e assim por diante.

E também para visualizar os 5 digitos decimais num relatório, esse no caso estou utilizando Rave Report.

 

Já procurei muito sobre o assunto, tem de tudo, porem em especial pra 5 casas decimais não achei muito coisa e as que achei uma vez são gambis outras não funcionam.

Tanto que resolvi abrir um tópico.

 

Bom, gostaria de saber se alguém consegue trabalhar normalmente com essa qtde de dígitos decimais pq sempre que tenho que trabalho com essa qtde de dígitos decimais eu tenho que fazer alguma espécie de GAMBI ou ate mesmo mudar algumas funcionalidades da tela (que particularmente acho um absurdo).

 

Vou explanar aqui como eu faço para trabalho com casas decimais Menos que 5 digitos:

Muito falado nos fórum é o tal de “TNumericField”

Ex.:

TNumericField(CdsTabela.FieldByName('Valor')).DisplayFormat := '#,##0.000';

 

Maravilha!

Funciona direitinho!

Mas tenta colocar 5 digitos decimais?

(Claro, o campo da base de dados tem que ser pelo menos um Decimal(12, 5)... senão você não vai ter os 5 dígitos decimais para visualizar).

 

O TNumericField é colocado depois de um open do TClientDataSet, justamente para garantir que o campo exista no mesmo TClientDataSet.

 

Uma outra maneira é colocando direto do TClientDataSet.

Ex.:

2 Cliques no TClientDataSet (CdsTabela).

Seleciona o campo correspondente (Valor).

Na propriedade DisplayFormat e digita a mascara (#,##0.000).

 

Essas duas opções funcionam perfeitamente para Colunas decimais que tenham menos de 5 digitos, porem qdo trabalho com 5 digitos, não consigo fazer esse simplificado processo funcionar.

 

Alguem pode me ajudar?

Lembrando ainda, que esse dois processos funcionam pro Rave.

 

 

 

Obrigado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo,

 

Tente fazer o seguinte na base ou no CdsTabela os campos que forem de valores tente mudar para float ou currency, depois disso

clique no campo desejado dentro TClientDataSet e procure a propriedade currency, depois marque para true.

Os sistemas que trabalham com valores funcionam com 5 casas decimais.

 

[]'s

 

Daniel Oliveira

Programador de Sistemas

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.