Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-07-2005
Avatar de Alexander
Alexander Alexander is offline
Miembro
 
Registrado: may 2004
Posts: 235
Poder: 21
Alexander Va por buen camino
Post Configuración regional - Varias opciones

He revisado casi todos los hilos sobre este tema pero no obtengo un solución.
A ver si estoy en lo correcto:
Cuando coloco las siguientes lineas de código en la creación de mi Main Form, funciona el ingreso de datos:
Código:
ThousandSeparator := ',';
DecimalSeparator := '.';
Application.UpDateFormatSettings := False;
Por ese lado ya está solucionado.
También encontre hacer una Unit ej. unPuntoComa
Código:
unit unPuntoComa;
interface
Uses SysUtils;
implementation
initialization
ThousandSeparator := ',';
DecimalSeparator := '.';
end.
y colocarla donde se necesite. Como les comento para el ingreso de datos funciona perfecto.
También encontré, ubicar el siguiente código en la inicialización del DataModule, pero de la misma forma solo me funciona para el ingreso de datos.
Código:
initialization
ThousandSeparator := ',';
DecimalSeparator := '.';
Ahora, cuando estoy mostrando los datos en una grilla, (QuantumExpressGrid) la muestra convirtiendo el dato String en Float, para darle formato
Código:
FormatFloat('#,###.#0 ',StrToFloat(AViewInfo.DisplayValue))
Aqui es donde no he podido hacer que el dato que viene lo convierta a float.
Ejemplo: Guardo el dato 120,000.15 y lo acepta
En la base de datos esta como 120.000,15
Al leerlo, el string es 120.000,15 y no lo permite convertir a 120,100.15 para mostrarlo.
Cual puede ser una solucion definitiva?. He visto que muchas personas tienen el mismo problema.
Alguien tienen una solución.
Por adelantado, muchas gracias por sus comentarios.
__________________
Cielos azules

Última edición por Alexander fecha: 05-07-2005 a las 23:33:33.
Responder Con Cita
  #2  
Antiguo 06-07-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por Alexander
Código:
initialization
ThousandSeparator := ',';
DecimalSeparator := '.';
Esto es lo único que tienes que hacer. y ponerlo en la primera ventana o Datamodule que se crea en la aplicación.

Cita:
Empezado por Alexander
Ahora, cuando estoy mostrando los datos en una grilla, (QuantumExpressGrid) la muestra convirtiendo el dato String en Float, para darle formato
Código:
FormatFloat('#,###.#0 ',StrToFloat(AViewInfo.DisplayValue))
Aqui es donde no he podido hacer que el dato que viene lo convierta a float.
Ejemplo: Guardo el dato 120,000.15 y lo acepta
En la base de datos esta como 120.000,15
Al leerlo, el string es 120.000,15 y no lo permite convertir a 120,100.15 para mostrarlo.
Cual puede ser una solucion definitiva?. He visto que muchas personas tienen el mismo problema.
Alguien tienen una solución.
Por adelantado, muchas gracias por sus comentarios.
Lo que no comprendo es esto:
Cita:
En la base de datos esta como 120.000,15
Entonces el campo en la base de datos es de tipo String, no de tipo Float
Suponiendo que AViewInfo sea el campo en cuestion, no sería más bien AViewInfo.Value??, al coger el valor, no pilla los separadores de millar, y evitas el problema.

Yo el campo lo defino de tipo Float o Currency en la base de datos, y
en la columna del DBGrid, asigno sus propiedades:

DisplayFormat: = ',#0.00';
EditFormat := '#0.00'

Observa que al editar, elimino el separador de miles.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 06-07-2005
Avatar de Alexander
Alexander Alexander is offline
Miembro
 
Registrado: may 2004
Posts: 235
Poder: 21
Alexander Va por buen camino
Talking Funciona a la perfección

Tienes toda la razón. Me funciona perfecto.
Coloqué en el DataModule el código
Código:
initialization
  ThousandSeparator := ',';
  DecimalSeparator := '.';
Y cambié la siguiente línea
Código:
  FormatFloat('#,###.#0 ',StrToFloat(AViewInfo.DisplayValue))
por esta línea de código
Código:
  FormatFloat('#,###.#0 ',AViewInfo.Value)
Estaba tratanto de convertir el String, no el valor.
Y ya me funciona muy bien. Haré el cambio en todo el programa.

Muchas gracias por tomarte el tiempo de ayudarme. SUERTE

Alexander
__________________
Cielos azules
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:33:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi