Ermitteln eines userspezifischen Desktoppfades
Pfad des Desktops in eine Variable schreiben
*&---------------------------------------------------------------------*
*& Report Z_PFAD_DIRECORY
*&
*&---------------------------------------------------------------------*
*& REGOTZ MICHEL
*& ERMITTELN EINES USERSPEZIFISCHEN DESKTOPPFADES
*&---------------------------------------------------------------------*
REPORT z_pfad_direcory.
"========================================================================
"Datendeklaration
"========================================================================
DATA: gf_pfad TYPE string.
"========================================================================
"START-OF-SELECTION
"========================================================================
START-OF-SELECTION.
CALL METHOD cl_gui_frontend_services=>get_desktop_directory
CHANGING
desktop_directory = gf_pfad
EXCEPTIONS
cntl_error = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF."
CALL METHOD cl_gui_cfw=>update_view.
WRITE: gf_pfad.
Pfad des Desktops in eine Variable schreiben und ein Dateiname bilden
*&---------------------------------------------------------------------*
*& Report Z_PFAD_VALUE
*&
*&---------------------------------------------------------------------*
*& REGOTZ MICHEL
*& ERMITTELN EINES USERSPEZIFISCHEN DESKTOPPFADES
*&---------------------------------------------------------------------*
REPORT z_pfad_direcory.
"========================================================================
"Selektionsscreen
"========================================================================
PARAMETERS: p_csv TYPE string LOWER CASE MODIF ID 001.
"========================================================================
"AT SELECTION-SCREEN OUTPUT.
"========================================================================
AT SELECTION-SCREEN OUTPUT.
"Vorschlagswert für Desktop-Directory und Dateiname
CALL METHOD cl_gui_frontend_services=>get_desktop_directory
CHANGING
desktop_directory = p_csv
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc <> 0.
ENDIF.
IF p_csv IS NOT INITIAL.
CONCATENATE p_csv '\Tabelle_' sy-datum '.csv' INTO p_csv.
ENDIF.
Ein Dialogfenster anzeigen damit man selbst eine Speicherpfad auswählen kann
*&---------------------------------------------------------------------*
*& Report Z_PFAD_DESKTOP
*&
*&---------------------------------------------------------------------*
*& REGOTZ MICHEL
*& ERMITTELN EINES USERSPEZIFISCHEN DESKTOPPFADES
*&---------------------------------------------------------------------*
REPORT z_pfad_desktop.
TABLES rlgrap.
DATA: ld_filename TYPE string,
ld_path TYPE string,
ld_fullpath TYPE string,
ld_result TYPE i,
gd_file TYPE c.
"========================================================================
"AT SELECTION-SCREEN.
"========================================================================
SELECTION-SCREEN BEGIN OF BLOCK m WITH FRAME.
PARAMETERS: p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK m.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
"========================================================================
"AT SELECTION-SCREEN OUTPUT.
"========================================================================
AT SELECTION-SCREEN OUTPUT.
* Anzeigen eines Dialogfensters zum speichern.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = 'REGOTZ '
default_extension = 'XLS'
default_file_name = 'data'
initial_directory = 'H:\desktop' "c:\temp\'
CHANGING
filename = ld_filename
path = ld_path
fullpath = ld_fullpath
user_action = ld_result.
"Pfad speichern
p_file = ld_fullpath.
WRITE: p_file, ld_fullpath.
Splitt oder Trennen von Pfad und Filenamen
FORM split_path.
DATA: lf_name TYPE dos_dsname,
lf_path LIKE pa_file.
"Trenne Pfad und Filenamen
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = pa_file
IMPORTING
stripped_name = lf_name
file_path = lf_path
EXCEPTIONS
x_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e006(zpoup).
ENDIF.
ENDFORM.
Speicherpfad für Uploadfile
"Hier kann man das XLS eingeben
PARAMETERS: pa_file TYPE rlgrap-filename. "DEFAULT 'C:\xXx\XLSEINSPIELEN.xls'.
"=======================================================================
" At Selection Screen Output
"=======================================================================
AT SELECTION-SCREEN OUTPUT.
"Desktop Pfad holen
PERFORM pathname.
"Ein Dialogfenster anzeigen damit man selbst eine Pfad und
"eine Datei auswählen kann
"=======================================================================
" AT SELECTION SCREEN ON VAlUE REQUEST FOR
"=======================================================================
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_file.
"XLS aufruf ermöglichen
PERFORM selectfile. "XLS aufruf ermöglichen
*&---------------------------------------------------------------------*
*& Form PATHNAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM pathname .
DATA: lf_path TYPE string.
"Desktop suchen
CALL METHOD cl_gui_frontend_services=>get_desktop_directory
CHANGING
desktop_directory = lf_path
EXCEPTIONS
cntl_error = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF."
"Desktop name holen
CALL METHOD cl_gui_cfw=>update_view.
"Pfad in Parameter schreiben
pa_file = lf_path.
"Dateiname hinzufüge
IF sy-uname = 'REGOTZ M'.
CONCATENATE pa_file '\20160707 Testfall.xlsx' INTO pa_file.
ENDIF.
ENDFORM. " PATHNAME
*&---------------------------------------------------------------------*
*& Form SELECTFILE
*&--------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM selectfile .
DATA :
lv_subrc LIKE sy-subrc,
lt_it_tab TYPE filetable.
" Anzeeigen des File im Open Dialog control/screen
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Select Source Excel File'
default_filename = '*.xls'
multiselection = ' '
"initial_directory = 'H:\desktop'
CHANGING
file_table = lt_it_tab
rc = lv_subrc.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF."
" Schreibe den PFAD in die das Inputfeld
LOOP AT lt_it_tab INTO pa_file.
ENDLOOP.
ENDFORM. " SELECTFILE