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
"========================================================================

DATAgf_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.

  
WRITEgf_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
"========================================================================

PARAMETERSp_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.

DATAld_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.
PARAMETERSp_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.

  
WRITEp_fileld_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
PARAMETERSpa_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

        search this website

Regotz Michel