Danke für deine Antwort, aber wie kann ich da ein Format angeben?RockyAM hat geschrieben:CONVERSION_EXIT_IDATE_INPUT
Code: Alles auswählen.
data datum2 type syst-datum.
data datum3(20).
write datum2 to datum3 DDMMYY.
allerdings soll der Benutzer das Format vorher frei bestimmen können
Sorry, ich programmier nur alle paar Jahre mal in ABAP aber meinem Verständnis nach ist SET DATE MASK ein SAPScript Befehl und ich arbeite nicht mit SAPScript. Kann man SAPScript Befehle denn auch in ABAP aufrufen?RockyAM hat geschrieben:http://help.sap.com/saphelp_40b/helpdat ... ontent.htm
RockyAM hat geschrieben:Tron hat die Lösung bereits gepostet
Code: Alles auswählen.
write datum2 to datum3 DDMMYY.
Also in SAPScript gibt es (soweit ich weiß) leider keine Möglichkeit zu sagen, dass die Zeichenkette '20111118' in wirklichkeit vom Typ d ist.RockyAM hat geschrieben:kannst du nicht das Ergebnis in den Zieltyp moven??
Code: Alles auswählen.
FORM DATE_TEST TABLES imp_par_tab STRUCTURE itcsy
exp_par_tab STRUCTURE itcsy.
DATA: lv_datum TYPE syst-datum.
DATA: lv_datum_xxl(20).
READ TABLE imp_par_tab WITH KEY name = 'DATUMTEST'.
CHECK sy-subrc = 0.
lv_datum = imp_par_tab-value.
* lv_datum ist vom Typ D !!
* imp_par_tab-value ist vom Typ CHAR !!
* exp_par_tab-value ist vom Typ CHAR !!
* Aufbereitung
write lv_datum to lv_datum_xxl DDMMYY.
*oder
*lv_datum(4) = Jahr
*lv_datum+4(2) = MOnat
*lv_datum+6(2) = Tag
*concatenate lv_datum+6(2) '-' lv_datum+4(2) '-' lv_datum(4) into exp_par_tab-value .
* Ergibt zB. 18-11-2011
* das Ergebnis fürs Formular ist CHAR
exp_par_tab-name = 'ERGEBNIS'.
exp_par_tab-value = lv_datum_xxl.
APPEND exp_par_tab.
ENDFORM. "DATE_TEST
Code: Alles auswählen.
CALL FUNCTION 'MONTH_NAMES_GET'
TABLES
month_names = lt_month_table
EXCEPTIONS
OTHERS = 0.
Code: Alles auswählen.
FORM ToString USING date TYPE d
dateFormat TYPE c
CHANGING result TYPE c.
" dateFormat: 'DD. MMMM YYYY'
" date: 20110101
" result soll sein: 01. Januar 2011
" dateFormat: 'DD.MM.YYYY'
" date: 20110101
" result soll sein: 01.01.2011
" dateFormat: 'MM.YYYY'
" date: 20110101
" result soll sein: 01.2011
" dateFormat: 'MM/YY'
" date: 20110101
" result soll sein: 01/11
" dateFormat: 'MMMM YYYY'
" date: 20110101
" result soll sein: Januar 2011
" dateFormat: 'MMM YYYY'
" date: 20110101
" result soll sein: Jan. 2011
" usw. mit beliebiger Kombination von DD MM YY
ENDFORM. " ToString
Folgende Benutzer bedankten sich beim Autor RockyAM für den Beitrag:
NCC-1701-M
Ich will aber doch das Datum in einen String umwandel. Oder versteh ich dich da jetzt falsch? Ich will das ein Datum vom Typ d in einen string umgewandelt wird. z.B. sy-datum soll in '18. November 2011' umgewandelt werden.RockyAM hat geschrieben:dann move doch einfach deinen string in deine datumsvarible -> das geht
MOVE lv_string TO lv_datum.
Wobei string vom Typ string und datum vom Typ d
...