Saltar al contenido

ABAP ¿cómo escribir una fecha como texto extenso?

Solución:

Puede obtener el nombre del mes en un idioma determinado utilizando la función del módulo ‘MONTH_NAMES_GET‘, pasando el idioma como parámetro. El día (domingo por ejemplo) también se puede obtener usando ‘RH_GET_DATE_DAYNAME

Guillaume

Este código le dará la fecha en formato de texto largo, como “02 de diciembre de 2011”. Puede cambiar el código en consecuencia para imprimir la fecha con un nombre MES largo.

DATA: LONG_DATE(20).
PERFORM GET_LONG_DATE USING LONG_DATE.
WRITE: LONG_DATE.

FORM GET_LONG_DATE USING DATE.

DATA: T_MONTH_NAMES LIKE TABLE OF T247 WITH HEADER LINE.

CALL FUNCTION 'MONTH_NAMES_GET'
 EXPORTING
   LANGUAGE     = SY-LANGU
  TABLES
    MONTH_NAMES = T_MONTH_NAMES
  .

DATA: YEAR(4)   TYPE C,
      MONTH(2)  TYPE C,
      DAY(2)    TYPE C.

YEAR = SY-DATUM+(4).
MONTH = SY-DATUM+4(2).
DAY = SY-DATUM+6(2).


READ TABLE T_MONTH_NAMES INDEX ( MONTH ).

CONCATENATE T_MONTH_NAMES-LTX ' ' DAY  INTO DATE SEPARATED BY SPACE.
CONCATENATE DATE ',' INTO DATE.
CONCATENATE DATE YEAR INTO DATE SEPARATED BY SPACE.

WRITE / DATE.

ENDFORM.

Creo que la forma más sencilla sería aplicar la salida de conversión LDATE a su campo de fecha. Lo más fácil es llamar al módulo de función CONVERSION_EXIT_LDATE_OUTPUT.

Esto, por ejemplo, convertiría

20090101

para

01. January 2009

(A menos que necesite tener el día, el texto del mes y el año en cadenas separadas, lo que parece indicar. De todos modos, tal vez ayude a otra persona).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *