Formatar Valor - ClientDataSet e Oracle

Delphi

11/02/2009

Boa tarde Pessoal,

o ClientDataSet não esta aceitando a formatação que eu estou colocando para formatar o Valor que estou buscando.

No banco de Dados o Valor esta desta forma : 3066,36

E quando eu trago os valores para minha Dbgrid sem formatação, ela me aparece desta forma: 306636

quando eu coloco a formação na Coluna la no Meu ClientDataSet
esta formatando de uma forma estranha, minha formatação é:
#,0.00 so que quando eu formato desta forma na mina aplicação (Dbgrid) aparece desta forma: 306.636,00.

ou seja, esta formatando de uma forma errada, eu ja formatei este campo de varias formas: ,0, ,, .... etcc....

e nenhuma destas formas esta chegando nem perto do valor real, eu nao consegui formatar de uma forma que fique somente a virgula e dois campos (ex: ,36).


Alguem saberia me dizer se é alguma configuração na minha maquina ou no Dbgrid ou no meu ClientDataSet, ja pesquisei em varios lugares da net e a unica solução que eu vejo o pessoal falando que é pra colocar esta formatação ,0.00, mas desta forma nao esta dando certo.


Obs. estou utilizando o Delphi 2007 - Oracle 10g com SQLQUERY, DATASetProvider, ClientDataSet, DataSource e Dbgrid.

Valeu pela boa colaboração de Voces.


Marlonnardi

Marlonnardi

Curtidas 0

Respostas

Charlles

Charlles

11/02/2009

Não sei como vc fez no banco nem que banco usa mas experimente nas propriedades do valor abilitar ´currency´ para true


GOSTEI 0
Marlonnardi

Marlonnardi

11/02/2009

Valeu charles pela ajuda,

a unica coisa que muda quando eu coloco a opção de currency é o R$, na frente do valor, mais nada.


Ninguem aqui do forum usa banco de dados oracle com clientdataset e que seu banco de dados possua campo com VALOR, no formato em real?

se alguem usa de alguma dica do que pode estar acontecendo com minha aplicação.

Att, Marlon Nardi


GOSTEI 0
Woinch

Woinch

11/02/2009

Você pode tentar utilizar a propriedade DisplayFormat do TClientDataSet.

Espero ter ajudado...


GOSTEI 0
Marlonnardi

Marlonnardi

11/02/2009

Valeu Woinch

Tanto no DislpayFormat como no EditFormat estou colocando a formatação.


GOSTEI 0
Charlles

Charlles

11/02/2009

Seguinte vamos por parte como esta no oracle este campo?


se nao for float nao funciona vc tem que primeiro designar ao banco os campos
tipo integer 99999999 float 999999,99 na opção float vc vai ter a posibilidade de configurar quantas casas decimais vc usa com certeza ele vai trazer para o ClientDataSet esta configuração e vc nao precisa ficar formatando o mesmo em forms formatfloat veja se pode ser isto eu uso o
MySQL nao acredito que seja diferente de Oracle


GOSTEI 0
Marlonnardi

Marlonnardi

11/02/2009

Realmente no meu no Campo Valor do meu ClientDataSet nao estava como float.
Alterei para FLOAT, mas continua da mesma forma.

no Banco de Dados o Valor esta: 3066,36 (VAL_PAGO_AQUIS NUMBER(15,2) not null,)

mas na minha aplicação aparece 306636, e se eu marco a opçao de currency para true ele fica: R$ 306.636,00


GOSTEI 0
POSTAR