Ver Mensaje Individual
  #2  
Viejo 30/01/19, 13:36:33
Avatar de vic3
vic3 vic3 is offline
Member
 
Fecha de Ingreso: mar 2017
Mensajes: 33
Ejemplo

Mira a mí por ejemplo si me llega un importe de este tipo "45678.23" y lo quiero transformar a "45.678,23"; hago esto:

FORM cambiar_formato CHANGING p_valor.

DATA: lv_contador_ent TYPE i,
lv_contador_dec TYPE i.
DATA: lv_entero(13) TYPE c,
lv_decimal(2) TYPE c.
DATA: lv_num_aux TYPE string.

CLEAR: lv_contador_ent, lv_contador_dec, lv_entero, lv_decimal, lv_num_aux.
SPLIT p_valor AT '.' INTO lv_entero lv_decimal.

lv_contador_dec = strlen( lv_decimal ).
IF lv_contador_dec = 0.
lv_decimal = '00'.
ELSEIF lv_contador_dec = 1.
CONCATENATE lv_decimal '0' INTO lv_decimal.
ENDIF.
lv_contador_ent = strlen( lv_entero ).
CONCATENATE lv_entero lv_decimal INTO lv_num_aux.

"POSITIVO...
IF p_valor => 0.
IF lv_contador_ent = 1.
WRITE lv_num_aux USING EDIT MASK '_,__' TO p_valor.
ELSEIF lv_contador_ent = 2.
WRITE lv_num_aux USING EDIT MASK '__,__' TO p_valor.
ELSEIF lv_contador_ent = 3.
WRITE lv_num_aux USING EDIT MASK '___,__' TO p_valor.
ELSEIF lv_contador_ent = 4.
WRITE lv_num_aux USING EDIT MASK '_.___,__' TO p_valor.
ELSEIF lv_contador_ent = 5.
WRITE lv_num_aux USING EDIT MASK '__.___,__' TO p_valor.
ELSEIF lv_contador_ent = 6.
WRITE lv_num_aux USING EDIT MASK '___.___,__' TO p_valor.
ELSEIF lv_contador_ent = 7.
WRITE lv_num_aux USING EDIT MASK '_.___.___,__' TO p_valor.
ELSEIF lv_contador_ent = 8.
WRITE lv_num_aux USING EDIT MASK '__.___.___,__' TO p_valor.
ELSEIF lv_contador_ent = 9.
WRITE lv_num_aux USING EDIT MASK '___.___.___,__' TO p_valor.
ELSEIF lv_contador_ent = 10.
WRITE lv_num_aux USING EDIT MASK '_.___.___.___,__' TO p_valor.
ELSEIF lv_contador_ent = 11.
WRITE lv_num_aux USING EDIT MASK '__.___.___.___,__' TO p_valor.
ELSEIF lv_contador_ent = 12.
WRITE lv_num_aux USING EDIT MASK '___.___.___.___,__' TO p_valor.
ENDIF.
"NEGATIVO...
ELSE.
IF lv_contador_ent = 1.
WRITE lv_num_aux USING EDIT MASK '_,__-' TO p_valor.
ELSEIF lv_contador_ent = 2.
WRITE lv_num_aux USING EDIT MASK '__,__-' TO p_valor.
ELSEIF lv_contador_ent = 3.
WRITE lv_num_aux USING EDIT MASK '___,__-' TO p_valor.
ELSEIF lv_contador_ent = 4.
WRITE lv_num_aux USING EDIT MASK '_.___,__-' TO p_valor.
ELSEIF lv_contador_ent = 5.
WRITE lv_num_aux USING EDIT MASK '__.___,__-' TO p_valor.
ELSEIF lv_contador_ent = 6.
WRITE lv_num_aux USING EDIT MASK '___.___,__-' TO p_valor.
ELSEIF lv_contador_ent = 7.
WRITE lv_num_aux USING EDIT MASK '_.___.___,__-' TO p_valor.
ELSEIF lv_contador_ent = 8.
WRITE lv_num_aux USING EDIT MASK '__.___.___,__-' TO p_valor.
ELSEIF lv_contador_ent = 9.
WRITE lv_num_aux USING EDIT MASK '___.___.___,__-' TO p_valor.
ELSEIF lv_contador_ent = 10.
WRITE lv_num_aux USING EDIT MASK '_.___.___.___,__-' TO p_valor.
ELSEIF lv_contador_ent = 11.
WRITE lv_num_aux USING EDIT MASK '__.___.___.___,__-' TO p_valor.
ELSEIF lv_contador_ent = 12.
WRITE lv_num_aux USING EDIT MASK '___.___.___.___,__-' TO p_valor.
ENDIF.
ENDIF.

ENDFORM.
__________________
Consultor técnico SAP

Úlima edición por vic3 fecha: 30/01/19 a las 13:39:15.
Responder Con Cita