Foros del Web » Programación para mayores de 30 ;) » .NET »

CRYSTAL REPORTS: Convertir texto en numerico desplazando posicion de la coma

Estas en el tema de CRYSTAL REPORTS: Convertir texto en numerico desplazando posicion de la coma en el foro de .NET en Foros del Web. Hola, no consigo hacer una formula, a ver si alguien me pudiera ayudar a CONVERTIR UN CAMPO TIPO TEXTO EN NUMERICO Y PONER LA COMA ...
  #1 (permalink)  
Antiguo 21/12/2010, 01:45
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
CRYSTAL REPORTS: Convertir texto en numerico desplazando posicion de la coma

Hola, no consigo hacer una formula, a ver si alguien me pudiera ayudar a CONVERTIR UN CAMPO TIPO TEXTO EN NUMERICO Y PONER LA COMA EN EL LUGAR CORRECTO, tengo crystal reports ver 9.2

Tengo un campo 'Importe' que se almacena como tipo STRING es decir como tipo TEXTO
Por ejemplo:

Si tengo 1310,42€ lo guarda como 1310.42000
Si tengo 121€ lo guarda como 121.00000

Necesito convertirlo a numerico porque tengo que operar con el (hacer sumatorias,etc) pero no me lo convierte bien.

He probado con esta formula:
tonumber({FLD19})
1310.42000 lo convierte en 131,042,000

Con esta otra formula:
tonumber((Mid(trim({FLD19}),1,Instr(trim({FLD19}), '.')+2)))
1310.42000 lo convierte en 131,042

Con esta otra formula:
truncate(tonumber(Mid(trim({FLD19}),1,Instr(trim({ FLD19}),'.')+2))-2)
1310.42000 lo convierte en 131,040

¿HAY ALGUNA FUNCION PARA DESPLAZAR LA COMA Y QUE EL CAMPO SIGA PASANDOLO A NUMERICO?
¿COMO PUEDO CONVERTIRLO EN NUMERICO PERO PONIENDO LA COMA DONDE YO QUIERA?

He hecho muchas pruebas mas, por ejemplo:
Mid(trim({FLD19}),1,Instr(trim({FLD19}),'.')-1)&','&Mid(trim({FLD19}),Instr(trim({FLD19}),'.')+ 1,2)
1310.42000 lo convierte en 1310,42 pero el problema es que no lo convierte a numerico, lo reconoce como string y por eso no me sirve esta.

Muchas gracias
  #2 (permalink)  
Antiguo 24/12/2010, 02:22
 
Fecha de Ingreso: diciembre-2010
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: CRYSTAL REPORTS: Convertir texto en numerico desplazando posicion de la co

YA LO CONSEGUI!!!!!

Que alegria y en Nochebuena ademas, os cuento como he conseguido convertir el campo tipo texto a numerico con los decimales en la posicion correcta por si a alguno os pudiera servir, he usado la siguiente formula:

tonumber(Mid(trim({AH172.FLD19}),1,Instr(trim({AH1 72.FLD19}),'.')-1))
+
(tonumber(Mid(trim({AH172.FLD19}),Instr(trim({AH17 2.FLD19}),'.')+1,2))/100)

La primera linea con que hace es extraer desde el primer digito hasta el caracter que hay antes de la coma (con la funcion INSTR que devuelve la posición de la primera aparición de una cadena dentro de otra (campo, cadena texto a buscar) le pongo que busque hasta la coma menos una posicion con ... ',')-1 ...

La segunda linea extrae dos digitos despues de la coma dividido entre 100 para que lo que hay detras de la coma se tenga en cuenta como decimal.

Y sumo las dos partes para que me de como resultado el numero entero + el decimal y ya tenga el numero final con todo.

Aunque no ha habido respuesta, muchas gracias de todas formas por la pagina y la ayuda que haceis desinteresadamente.
Besos, felices fiestas y os deseo de corazon prospero año a todos y mucho amor.... :)

Etiquetas: coma, crystal, numerico, posicion, reports
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:03.