ich möchte in ein p_output file ein sy-datum einbauen. sobald die Checkbox "Datum in Datei einfügen" angehakt ist, soll dies passieren. (Also dateinamen20171010.txt).
Soweit so gut... Zumindest die Syntaxprüfung meckert nicht. Nur wenn ich mir dies im Debugger anschaue, ist das Ergebnis 00000.txt. Was mache ich falsch?
Hier ein Code-Auszug.
Selection Screen Begin of Block 001.
Parameters: p_output LIKE ibipparms-path DEFAULT 'dateinamen.txt'.
Parameters: p_date AS CHECKBOX DEFAULT ' '.
Selection Screen End of Block 001.
.
.
DATA: l_date TYPE d.
l_output TYPE string
.
.
.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = p_output
.
.
.
IF p_date EQ 'X'.
CONCATENATE l_output l_date INTO p_output.
ENDIF.
Danke im voraus für hilfreiche Tipps. Oder vielleicht gibt es ja einen anderen Weg?
Ich staune, dass das funktionieren soll. l_date kommt mir nämlich genauso unmotiviert vor wie l_output. Eigentlich müsste er an den Dateinamen immer '00000000' anhängen, da das das initiale Datum ist. l_date wird ja nirgendwo gesetzt. (Außer vielleicht in dem nicht wiedergegebenen Teil des Codes, weswegen ich es hasse, wenn Leute nur Codefragmente posten. Die sind fast nie vollständig hinsichtlich der Fragestellung.)
Richtig wäre, l_date auch rausfliegen zu lassen und im CONCATENATE stattdessen SY-DATUM zu schreiben.
P.S. Wenn Wolfgang Dir geholfen hat, dann solltest Du bei seinem Post auch auf "Danke" klicken, damit das gezählt wird.
den gesammten Code kann ich leider so nicht posten.
kleine Anpassungen haben meinerseits noch gefehlt. l_date habe ich als Sy-datum deklariert
Jetzt schaut es bei mir so aus und es macht das, was es soll
SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE TEXT-005.
PARAMETERS:
p_output LIKE ibipparms-path DEFAULT
'File.txt'.
PARAMETERS: p_date AS CHECKBOX DEFAULT ' '. "Datum an File anhängen
SELECTION-SCREEN END OF BLOCK input.
DATA: l_date TYPE d. "Datendeklaration für Zeitstempel der Ausgabedatei
l_date = sy-datum.
.
.
.
IF p_date EQ 'X'. "Zeitstempel an Ausgabefile hängen
CONCATENATE p_output l_date '.txt' INTO p_output. "Zeitstempel an Dateinamen anhängen
REPLACE FIRST OCCURRENCE OF '.txt' IN p_output WITH ''."Endung .txt von Ursprungsdatei entfernen
ENDIF.