PDA

Ver la Versión Completa : Cambio de Signo


ABellamy
06/03/17, 21:43:36
Buenas tardes.
Estoy armando un ALV en el que al cumplirse cierta condición, el importe debe de presentarse con signo negativo.

Mi código (lo presento abajo) es este y cuando lv_dmbtr sale del modulo de funciones se presenta algo así como: -1000.

Lo paso al campo que quiero y en la tabla interna se pone como 1000-
Inclusive hago un WRITE para ver como se presenta y sale lo mismo (1000-).
Destaco que el lv_dmbtr es tipo string ya que definiendolo como el tipo de dmbtr es moneda y este FM me da problemas con ese tipo de dato.

* Cambio de Signo en Importe.
LOOP AT lt_bseg INTO wa_bseg.
IF wa_bseg-shkzg = 'H'.
MULTIPLY wa_bseg-dmbtr BY -1.

lv_dmbtr = wa_bseg-dmbtr.

CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
value = lv_dmbtr.

wa_bseg-dmbtr = lv_dmbtr.
MODIFY lt_bseg FROM wa_bseg TRANSPORTING dmbtr.
ENDIF.
ENDLOOP.


Alguna idea que puedan proporcionarme, por favor?

Gracias.

bruky
07/03/17, 16:46:23
Buenas tardes ABellamy,

La verdad que yo de ABAP estoy muy perdido y espero que lo que te diga no sea una aberración.

El campo que guarda el 1000- entiendo que es un char, no?

Quizá lo que pudieras hacer es:

Definirte tres variables:
- var1(4) type c.
- var2 type c.
- var3(5) type c.

Después hacer algo así:
var1 = campodelmil+1 (4)
var2 = campodelmil +4 (1)

concatenate var2 var1 into var3

Siento no tener mucha idea de ABAP, pero es lo primero que se me vino a la cabeza.
Un saludo.

ABellamy
08/03/17, 21:53:25
Gracias por tú aporte, Bruky
A pesar de que no es lo más correcto el funcional lo ha aceptado así como está (1000-). Ni modo.

Gracias.


Saludos