[ABAP] SaveFile-Dialog anzeigen

Variante 1 (cl_gui_frontend_services)

PARAMETERS: p_fname TYPE file_table-filename OBLIGATORY DEFAULT 'c:\test.xlsx'.

* wenn die F4-Hilfe für den Dateinamen aufgerufen wird
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
  DATA: lv_action TYPE i.
  DATA: lv_filename TYPE string.
  DATA: lv_fullpath TYPE string.
  DATA: lv_path TYPE string.

* FileSave-Dialog aufrufen
  TRY.
      cl_gui_frontend_services=>file_save_dialog( EXPORTING
                                                    default_extension   = 'xlsx'        " default Dateinnamenerweiterung
                                                    default_file_name   = |{ p_fname }| " default Dateiname
                                                    file_filter         = |xlsx (*.xlsx)\|*.xlsx\|{ cl_gui_frontend_services=>filetype_all }|
                                                    prompt_on_overwrite = abap_true
                                                  CHANGING
                                                    filename          = lv_filename     " Dateiname
                                                    path              = lv_path         " Pfad
                                                    fullpath          = lv_fullpath     " Pfad + Dateiname
                                                    user_action       = lv_action ).    " Benutzeraktion

      IF lv_action EQ cl_gui_frontend_services=>action_ok.
        p_fname = lv_fullpath.
      ENDIF.

    CATCH cx_root INTO DATA(e_text).          " Oberklasse für Exceptions abfangen und Kurztext übergeben
      MESSAGE e_text->get_text( ) TYPE 'I'.   " Exception Kurztext ausgeben
  ENDTRY.

Variante 2 (cl_openxml_helper)

DATA(lv_default_filename) = |Excelfile.xlsx|.
DATA(lv_filterpattern) = |Excel-Datei (*.xlsx)\|*.xlsx\|{ cl_gui_frontend_services=>filetype_all }|.

DATA(lv_savefile) = cl_openxml_helper=>browse_local_file_save( iv_title      = 'Datei speichern'
                                                               iv_filename   = lv_default_filename
                                                               iv_extpattern = lv_filterpattern ).

WRITE: / lv_savefile.

[ABAP] OpenFile-Dialog anzeigen

Variante 1 (cl_gui_frontend_services)

PARAMETERS: p_fname TYPE file_table-filename OBLIGATORY.

* wenn die F4-Hilfe für den Dateinamen aufgerufen wird
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
  
  DATA: lv_rc TYPE i.
  DATA: it_files TYPE filetable.
  DATA: lv_action TYPE i.
    
* File-Tabelle leeren, da hier noch alte Einträge von vorherigen Aufrufen drin stehen können  
  CLEAR it_files.

* FileOpen-Dialog aufrufen
  TRY.
      cl_gui_frontend_services=>file_open_dialog( EXPORTING
                                                    file_filter    = |txt (*.txt)\|*.txt\|{ cl_gui_frontend_services=>filetype_all }|
                                                    multiselection = abap_false
                                                  CHANGING
                                                    file_table  = it_files
                                                    rc          = lv_rc
                                                    user_action = lv_action ).

      IF lv_action = cl_gui_frontend_services=>action_ok.
* wenn Datei ausgewählt wurde
        IF lines( it_files ) > 0.
* ersten Tabelleneintrag lesen
          p_fname = it_files[ 1 ]-filename.
        ENDIF.
      ENDIF.
      
    CATCH cx_root INTO DATA(e_text).
      MESSAGE e_text->get_text( ) TYPE 'I'.
  ENDTRY.

Variante 2 (cl_openxml_helper)

DATA(lv_default_filename) = ||.
DATA(lv_filterpattern) = |Excel-Datei (*.xlsx)\|*.xlsx\|{ cl_gui_frontend_services=>filetype_all }|.

DATA(lv_selected_file) = cl_openxml_helper=>browse_local_file_open( iv_title      = 'Dateiauswahl'
                                                                    iv_filename   = lv_default_filename
                                                                    iv_extpattern = lv_filterpattern ).

WRITE: / lv_selected_file.

Variante 3 (Funktionbaustein – Obsolet)

* Eingabefeld für Dateinamen auf dem Selektionsbild, Eingabe ist Pflicht
PARAMETERS : p_file LIKE ibipparms-path OBLIGATORY.

* wenn die F4-Hilfe für den Dateinamen aufgerufen wird
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CLEAR p_file.

  CALL FUNCTION 'F4_FILENAME' " File-Dialog aufrufen
    EXPORTING
      field_name = 'P_FILE'
    IMPORTING
      file_name  = p_file.