J'ai besoin de diviser la date Abap, comme "01" et "2009" sont trivial, mais comment puis-je obtenir le nom du mois (qui devrait être localisé)? P > y a-t-il une fonction de faire cela? p> S'il n'y a pas de cette fonction, peut-être une table avec des noms de mois? P> p>
8 Réponses :
Vous pouvez obtenir le nom du mois dans une langue donnée à l'aide de la fonction Module ' Guillaume P> mois_names_get code>', passant la langue en tant que paramètre. Le jour (dimanche par exemple) peut également être obtenu en utilisant '
rh_get_date_dayname code>' p>
Vous pouvez utiliser un simple FM 'mois_names_get'
Je pense que le moyen absolu le plus simple serait d'appliquer la sortie de conversion LDate à votre champ de date. La plus facile consiste à appeler le module de fonction conversion_exit_ldate_output.
Ceci serait par exemple convertir P> à p>
Ce code vous donnera la date au format texte long tel que "02 décembre 2011". Vous pouvez modifier le code en conséquence pour imprimer la date avec le nom du mois de longue durée.
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.
EXPORTING input = get_date IMPORTING OUTPUT = get_date.
Normalement, vous pouvez également exporter la date au format de date spécifique du pays de l'usine:
if w_country is initial. select single LAND1 from T001W into w_country where WERKS eq w_the_plant. endif. SET COUNTRY w_country. write w_the_date to w_export.
data : lv_timestamp TYPE string, lv_str TYPE STRING. concatenate sy-datum sy-uzeit into lv_timestamp. concatenate 'C:\Users\Roopa Rani\desktop\header' '_' lv_timestamp '.txt' INTO FILEPATH. I think it's useful.
PARAMETERS: P_1 TYPE SY-DATUM. DATA : LV_DATE TYPE SY-DATUM,LV_TIME TYPE SY-UZEIT,lv_month type string. LV_TIME = SY-UZEIT. DATA: YEAR(4) TYPE C, MONTH(2) TYPE C, DAY(2) TYPE C. YEAR = P_1+0(4). MONTH = P_1+4(2). DAY = P_1+6(2). IF MONTH = '01'. lv_month = 'JAN'. ELSEIF Month = '02'. lv_month = 'Feb'. ELSEIF Month = '03'. lv_month = 'Mar'. ELSEIF Month = '04'. lv_month = 'Apr'. ELSEIF Month = '05'. lv_month = 'May'. ELSEIF Month = '06'. lv_month = 'Jun'. ELSEIF Month = '07'. lv_month = 'Jul'. ELSEIF Month = '08'. lv_month = 'Aug'. ELSEIF Month = '09'. lv_month = 'Sep'. ELSEIF Month = '10'. lv_month = 'Oct'. ELSEIF Month = '11'. lv_month = 'Nov'. ELSEIF Month = '12'. lv_month = 'Dec'. ENDIF. WRITE: '|',day NO-GAP,'-', lv_month NO-GAP,'-',year NO-GAP.