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 30/08/11, 23:01:49
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Error en resultado al multiplicar.


Tengo esa operación la cual tengo que dividir el resultado entre 1000 porque me está regresando resultados raros.

Ejemplo

Valor_ini = 10.000 * 1.13 = <- Con esos datos en lugar de regresarme 11.30 me regresa 11300.00.

¿Alguna idea?
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
Responder Con Cita
  #2  
Viejo 31/08/11, 06:12:14
jtristan jtristan is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 240
Hola DcErick,

ya sé que es una bobada, pero no se me ocurre otra cosa. Podría ser que en el valor 10.000, el punto lo esté interpretando como millares y no decimales. Podrías probar a que te devuelva la parte decimal, por ver qué parte decimal está cogiendo de ese valor.

Un saludo.
Responder Con Cita
  #3  
Viejo 31/08/11, 11:58:59
daniel1050 daniel1050 is offline
Member
 
Fecha de Ingreso: oct 2010
Mensajes: 58


Seguramente lo mas posible es como te dijo jtristan, que tenga que ver con el formato de separacion de decimales que estas utilizando.

Fijate de convertir si queres cada nro al formato correcto antes de hacer la cuenta.

tendrias que hacer algo asi como te pongo en el ejemplo de abajo, aplicandolo para ambas variables la del 10.000 y la del 1.13 .


La idea es primero fijarse en que formato estas trabajando , luego convertir las variables que contienen los nros a su formato y por ultimo realizar la operacion.

DATA: v_importe_actual TYPE bseg-wrbtr.


*Obtengo el formato decimal del sistema en la variable FORMATO_DEC
SELECT SINGLE dcpfm
INTO formato_dec
FROM usr01
WHERE bname = sy-uname.

DATA: v_separador_decimal TYPE c.
DATA: v_separador_miles TYPE c.

CASE formato_dec.
WHEN ' '. " Coma decimal.
v_separador_decimal = ','.
v_separador_miles = '.'.
WHEN 'X'.
v_separador_decimal = '.'.
v_separador_miles = ','.
WHEN 'Y'.
v_separador_decimal = ','.
v_separador_miles = ' '.
ENDCASE.

CLEAR v_importe_actual.

* En esta funcion convertis el importe al formato correcto
CALL FUNCTION 'HRCM_STRING_TO_AMOUNT_CONVERT'
EXPORTING
string = t_input-wrbtr
decimal_separator = v_separador_decimal
thousands_separator = v_separador_miles
waers = 'INR'
IMPORTING
betrg = v_importe_actual
EXCEPTIONS
convert_error = 1
OTHERS = 2.
Responder Con Cita
  #4  
Viejo 31/08/11, 14:12:05
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Ya le probé y no me anda ...

El formato que estoy usando es "," separador de miles y "." separado decimal.
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
Responder Con Cita
  #5  
Viejo 31/08/11, 14:29:06
daniel1050 daniel1050 is offline
Member
 
Fecha de Ingreso: oct 2010
Mensajes: 58
Y si el campo bestand-anfmenge lo pasas a una variable auxiliar que sea del tipo mbew-salk3 en vez de tipo p antes de realizar la operacion ?
Responder Con Cita
  #6  
Viejo 31/08/11, 15:09:00
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090

jejeej Tambien lo intenté, lo que intento hacer es multiplicar una cantidad(stock) por un precio en este caso es el precio variable, ya lo solucioné al final hice lo que hace la MB52: Dividir el valor total / el stock total obteniendo así el factor.


Código MB52:

Algo que pude notar al momento de "debuguear" factor toma el valor " 1.2880001628942013E+00" y el campo VERPR al pasarlo a una variable auxiliar tomaba el valor "1.2880000000000000E+03"
En la MM03 el campo VERPR tiene el valor de 12.88.

Bueno gracias a todos por su ayuda.
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
Responder Con Cita
  #7  
Viejo 01/09/11, 19:28:04
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Estimado hice lo siguiente:

data valor_ini LIKE mbew-salk3.
data ANFMENGE TYPE P DECIMALS 3.
data VERPR LIKE MBEW-VERPR.

anfmenge = '10.000'.
verpr = '1.13'.
valor_ini = anfmenge * verpr.

write valor_ini.

*************************
Si su programa en sus atributos (Menu Pasar\Atributos) no tiene chequeado la opción "Cálculo de coma Fija"....le va a dar el valor que incialmente indicabas. Pero si lo marcas entonces si te hará correctamente el cálculo.

Saludos
Responder Con Cita
  #8  
Viejo 01/09/11, 20:10:23
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090

Horale, eso no lo probé igual ya quedó con lo que hice con lo que hice en una oportunidad marco ese check y hago el calculo directo, por lo pronto dejemos al usuario feliz con lo que se le entregó .
Lo que ya verifiqué es que el reporte no tiene marcada esa opción, veo que al crear un reporte ese check sale marcado por default, en mi caso estoy haciendo una copia de la MB5B y el reporte no tiene marcado ese check.

Gracias.
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
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 21:01:03.


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