✏️ Excel Template 다운로드 ( SMW0 )

빵섭·2025년 3월 7일
0

✏️ ABAP 공부

목록 보기
5/14
post-thumbnail

ABAP 공부 (3) 과 이어진다.

💡 Excel Template 다운로드 ( SMW0 ) 공부

템플릿을 다운받아보자!

1. TOP 선언


각 의미하는 건 나중에 다시 정리가 필요!

2. AT SELECTION-SCREEN ( 셀렉션 스크린에서 event 가 발생! )

T-CODE : SMW0 에서 양식을 등록해야한다.

3. SMW0

💡 OBJ. NAME 은 해당 양식을 가져올때 사용해야하므로 센스껏 짓는다.

등록까지 완료되었다면 다시 로직을 작성하러 돌아간다.

4. get_form ( 끝 )

Excel Template 정보를 가져오는 부분

💡 CODE

  DATA : lv_filename    TYPE string,
         lv_name        TYPE string,
         lv_path        TYPE string,
         lv_fullpath    TYPE string,
         lv_user_action TYPE i,
         ls_key         TYPE wwwdatatab,
         lv_langu       TYPE laiso.

* EXCEL Template 정보를 가져옴
  SELECT SINGLE f~relid f~objid f~checkout f~checknew
         f~chname f~tdate f~ttime f~text p~devclass
    INTO CORRESPONDING FIELDS OF ls_key
    FROM wwwdata AS f
    JOIN tadir AS p
      ON f~objid    EQ p~obj_name
   WHERE f~srtf2    EQ 0
     AND f~relid    EQ 'MI'
     AND p~pgmid    EQ 'R3TR'
     AND p~object   EQ 'W3MI'
     AND p~obj_name EQ pv_form.

  IF sy-subrc <> 0.
    MESSAGE s000 WITH TEXT-e01 DISPLAY LIKE 'E'.
    EXIT.
  ENDIF.

  CONCATENATE pv_name '.xlsx' INTO lv_name.

* 저장경로를 설정하는 곳
  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
*     window_title              =
      default_extension         = 'XLSX'
      default_file_name         = lv_name
*     with_encoding             =
*     file_filter               =
*     initial_directory         =
*     prompt_on_overwrite       = 'X'
    CHANGING
      filename                  = lv_filename
      path                      = lv_path
      fullpath                  = lv_fullpath
      user_action               = lv_user_action
*     file_encoding             =
    EXCEPTIONS
      cntl_error                = 1
      error_no_gui              = 2
      not_supported_by_gui      = 3
      invalid_default_file_name = 4
      OTHERS                    = 5.

  IF lv_user_action = cl_gui_frontend_services=>action_cancel.
    EXIT.
  ENDIF.

  CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
    EXPORTING
      key         = ls_key
      destination = CONV localfile( lv_fullpath ).

  CALL METHOD cl_gui_frontend_services=>execute
    EXPORTING
      document               = lv_fullpath
    EXCEPTIONS
      cntl_error             = 1
      error_no_gui           = 2
      bad_parameter          = 3
      file_not_found         = 4
      path_not_found         = 5
      file_extension_unknown = 6
      error_execute_failed   = 7
      synchronous_failed     = 8
      not_supported_by_gui   = 9
      OTHERS                 = 10.
profile
ABAP / SAP

0개의 댓글