MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 27/02/09, 08:35:47
romario2 romario2 is offline
Senior Member
 
Fecha de Ingreso: abr 2006
Mensajes: 233
Red face leer los decimales

Tengo que mostrar unos decimales en un concatenate.
No lo muestro ni con ALV ni con Write.

Quiero que los decimales se muestren solo en el caso que existan.
Por ejemplo:
1.00 __________1 _____No mostramos decimal!
1.55___________1.55

Ya he pensado el pseudocódigo:

SI valor lleva decimal (LEER DECIMAL)
no convertimos
sino
convertimos a entero
finsi.


La pregunta es cómo puedo leer los decimales?. Es decir, los 2 último digitos

Muchas gracias
Responder Con Cita
  #2  
Viejo 27/02/09, 12:32:08
Avatar de ppchico
ppchico ppchico is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Localización: Málaga
Mensajes: 144
Puedes hacer un SPLIT de la variable en dos nuevas variables es decir:

SPLIT variable_total AT '.' INTO valor_entero valor_decimal.

Con esto, si el valor es 1.001 tras el SPLIT tendrás

VALOR_ENTER0 = 1
VALOR_DECIMAL = 001

En este caso, solo tendrías que comprobar que el valor decimal contiene algún valor distinto de 0 es decir:

IF VALOR_DECIMAL CA '123456789'.

DEJAS LOS DECIMALES

ELSE.

ELIMINAS LOS DECIMALES.

ENDIF.

Cuidado con el formato de la COMA puede ser un '.' ó un ','. Y el tipo de datos para hacer el SPLIT tiene que ser CHAR, por lo que si lo tienes en un CURR deberás hacer un MOVE antes del SPLIT a una variable de caracter, y el campo del ALV a mostrar deberá ser de tipo CHAR, para poder eliminarlos para unos sí y otros no...

Suerte compañero.
Responder Con Cita
  #3  
Viejo 27/02/09, 14:12:33
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Para eso hay 2 sentencias muy buenas, la primera es TRUNC, esa sentencia te indica la parte entera de un decimal, y la sentencia FRAC q te indica la parte decimal, aki un link muy bueno

__________________
David Carballido Córdova
Responder Con Cita
  #4  
Viejo 03/03/09, 11:22:11
romario2 romario2 is offline
Senior Member
 
Fecha de Ingreso: abr 2006
Mensajes: 233
Gracias!

Muchas gracias compañeros,

al final lo hice con un split:

split l_num at '.' into l_1 l_2.

l_1 siempre contiene la parte entera

l_num sera el numero completo

l_2 los decimales
Responder Con Cita
  #5  
Viejo 03/03/09, 14:05:17
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Holas ... solo para tener algo en consideracion por q facil t pueden agarrar x ahi, en el maestro de usuarios se configura la coma o punto decimal ... debes consultar primero el maestro de usuarios para ver q caracter usa como decimal y agregarlo al SPLIT ... slds
__________________
David Carballido Córdova
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

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


Husos Horarios son GMT. La hora en este momento es 00:26:32.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web