Ir al contenido


Foto

[RESUELTO] Problema con formato de campo de tipo Moneda


  • Por favor identifícate para responder
74 respuestas en este tema

#1 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 12:35

Hola,

Estoy creando una aplicación y me he dado cuenta de algo que me parece un poco raro, resulta que tengo varios campos con tipo Numeric(10,2) y cuando los muestro en el dbgrid les asigno la propiedad Currency = true pero cuando tiene cero centavos no me muestra los decimales, he jugado con la propiedad DisplayFormat = $,0.00, $,#.## y sigue sin mostrarme los centavos.

Estoy usando componentes dbExpress.

¿ A alguien le ha sucedido algo parecido ? ¿ Tengo que cambiar el tipo de campo ?

Agradezco cualquier consejo :)

Les muestro unas imagenes de como se ve en la base de datos y como se ve en el dbGrid

Salud OS

Archivos adjuntos


  • 0

#2 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 02 marzo 2010 - 12:41

Hola
A mi me paso algo similar y lo solucione en el query, ahi es donde puse el formato.
Saludos
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 12:50

Hola
A mi me paso algo similar y lo solucione en el query, ahi es donde puse el formato.
Saludos


¿ En la sentencia SQL ? ¿ Como lo hiciste amigo Carlos ?

Salud OS
  • 0

#4 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 02 marzo 2010 - 12:52

Hola Eliseo, por casualidad tienes algo en algún evento... ¿Usas campos persistentes? Si es así... ¿tienes algo en OnGetText y/o OnSetText?

Por otro lado... disculpame pero si no me equivoco... que no es $#.00? Veo que tu pones una coma antes: $,...  *-)

Saludos,
  • 0

#5 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 01:01

propiedad DisplayFormat = $,0.00, $,#.## y sigue sin mostrarme los centavos.


mmm haber amigo, prueba de la siguiente manera que a mi me funciona:

$##,###,###.00

ese formato indica que cuando no haya decimales ponga cero en caso contrario ponga el valor,

saludos


  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 01:07

Hola Eliseo, por casualidad tienes algo en algún evento... ¿Usas campos persistentes? Si es así... ¿tienes algo en OnGetText y/o OnSetText?

Por otro lado... disculpame pero si no me equivoco... que no es $#.00? Veo que tu pones una coma antes: $,...  *-)

Saludos,


Eso es para que tenga formato de miles :D

Salud OS
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 01:09


propiedad DisplayFormat = $,0.00, $,#.## y sigue sin mostrarme los centavos.


mmm haber amigo, prueba de la siguiente manera que a mi me funciona:

$##,###,###.00

ese formato indica que cuando no haya decimales ponga cero en caso contrario ponga el valor,

saludos



Voy a hacer la prueba :D

Gracias amigo

Salud OS
  • 0

#8 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 01:13

Pues no, no quiere :(, con IBX no tengo esos problemas :(

Salud OS
  • 0

#9 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 02 marzo 2010 - 01:16

¡Cierto!
Pues creo que con poner $,#.00 ya debería ser suficiente... yo estoy probando con IBX y funciona bien... es evidente entonces que el asunto pasa por dbExpress :(

Saludos,
  • 0

#10 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 02 marzo 2010 - 01:19

¿Cómo estas configurando el dbExpress... quizá si podemos recrear el mismo escenario podamos ver donde está el problema. Yo nunca usé dbExpress pero si me pones las instrucciones como para lerdos y tontos las voy a entender :D.

Saludos,
  • 0

#11 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 02 marzo 2010 - 01:26

Hola
El dbgrid esta ligado a un datasource, este a un query
En el query pones la sentencia sql en la caja de valores y te ubicas en el campo en cuestion.
Ahi es donde pongo el formato.
Cuando lo he puesto en el dbgrid no hace lo que quiero.
Nada se pierde con probarlo.
Saludos

  • 0

#12 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 01:30

¿Cómo estas configurando el dbExpress... quizá si podemos recrear el mismo escenario podamos ver donde está el problema. Yo nunca usé dbExpress pero si me pones las instrucciones como para lerdos y tontos las voy a entender :D.

Saludos,


Pues es simple, utilizo un SQLDataSet, un DataSetProvider y un ClientDataSet.

Salud OS

Archivos adjuntos


  • 0

#13 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 02 marzo 2010 - 01:44

Ajá... ¿y... como viene la mano en el SQLConnection? *-) Que supongo que es lo fundamental :D...
Perdón que pregunte pero es que no le entiendo todavía la mano a dbX :s.

Voy a tener que volver a descargar el manual de la zona de descargas porque cuando lo intento abrir no se ve nada... que raro :s

Saludos,
  • 0

#14 cannabis

cannabis

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 257 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 02:01

Utilizo esto después de abrir el query:



delphi
  1. (query1.FieldByName('Importe') AS TFloatField).DisplayFormat:= ',0.00';




Salud.


  • 0

#15 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 02:08

Utilizo esto después de abrir el query:



delphi
  1. (query1.FieldByName('Importe') AS TFloatField).DisplayFormat:= ',0.00';



Salud.


Ah vaya, lo voy a probar, muchas gracias amigo cannabis.

Como les decia con IBX si me muestra bien los campos de tipo moneda  :undecided:

Salud OS

Archivos adjuntos


  • 0

#16 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 02:14

Pues no amigo cannabis me manda este error :(

---------------------------
Menu
---------------------------
Invalid class typecast.
---------------------------
OK 
---------------------------


Salud OS
  • 0

#17 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 02 marzo 2010 - 02:16

Hola
Access, access, DelphiACCESS ra, ra, ra. :D :D :D
Saludos
  • 0

#18 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 02 marzo 2010 - 02:22

Hola egostar

Imagino que tu problema es que seguramente pones el formato de visualización en el campo persistente del SQLDataset, y hay que ponerlo en el campo persistente del ClientDataset.

La grid está (o debería estar) conectada al ClientDataset y no al SQLDataset.

Saludos.
  • 0

#19 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 02 marzo 2010 - 02:25

Saludos.

Egostar, ¿A quien le pones el DisplayFormat? ¿Al TSQLQuery o TClientDataSet?

Por cierto ¿Qué versión de Delphi usas?
  • 0

#20 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 marzo 2010 - 02:26

Hola egostar

Imagino que tu problema es que pones el formato de visualización en el campo persistente del SQLDataset, y hay que ponerlo en el campo persistente del ClientDataset.

La grid está (o debería estar) conectada al ClientDataset y no al SQLDataset.

Saludos.


Así lo estoy haciendo amigos Marc y Rolphy, tengo el Provider ligado al DataSet, el ClientDataSet ligado al Provider y el DataSurce ligado al ClientDataSet que es donde asigno el DisplayFormat. :(

Salud OS

Uso Turbo Delphi Pro amigo Rolphy.
  • 0




IP.Board spam blocked by CleanTalk.