Wednesday, January 10, 2007

CLOI_PUT_SIGN_IN_FRONT...


Si alguna vez han querido cambiar la posición del signo negativo en ABAP (El standard es 100-) para que quede así -100, habrán buscado y encontrado la función CLOI_PUT_SIGN_IN_FRONT y claro, se habrán dado cuenta de que no sirve para todos los casos e inclusive no funciona en modo de test...Por eso, hice un pequeño form para solucionar los pequeños inconvenientes -;)

REPORT z_dummy_atg_3.

DATA: value TYPE p DECIMALS 2,
value_text(18) TYPE c,
text1(18) TYPE c.

value = '15.2-'.
WRITE value TO value_text.

PERFORM cambiar_signo CHANGING value_text.

WRITE:/ value_text.

*&--------------------------------------------------*
*& Form CAMBIAR_SIGNO
*&--------------------------------------------------*
* Cambia la posición del signo
*---------------------------------------------------*
FORM cambiar_signo CHANGING value_text.

SEARCH value_text FOR '-'.
IF sy-subrc = 0 AND sy-fdpos <> 0.
SPLIT value_text AT '-' INTO value_text text1.
CONDENSE value_text.
CONCATENATE '-' value_text INTO value_text.
ELSE.
CONDENSE value_text.
ENDIF.

ENDFORM. "CAMBIAR_SIGNO

Saludos,

Blag.

No comments: