gui_download和ws_filename_get

发布时间 2023-08-26 13:02:01作者: 往事只能回味---
*&---------------------------------------------------------------------*
*& Report  Z100
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT Z100 MESSAGE-ID ZHQ NO STANDARD PAGE HEADING.


TABLES SSCRFIELDS.

SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.
SELECTION-SCREEN FUNCTION KEY 3.


TYPES:BEGIN OF LS_TEMPLATE,
  NAME TYPE CHAR50,
  END OF LS_TEMPLATE.

DATA GS_TEMPLATE TYPE LS_TEMPLATE.
DATA GT_TEMPLATE TYPE TABLE OF LS_TEMPLATE WITH HEADER LINE.




PARAMETERS P_FILE TYPE RLGRAP-FILENAME.

INITIALIZATION.

  TYPE-POOLS ICON.  "第一种方法:引入图标
  SSCRFIELDS-FUNCTXT_01 = '@3N@下载模板'.

  WRITE ICON_ICON_LIST AS ICON TO SSCRFIELDS-FUNCTXT_02+0(4).
  SSCRFIELDS-FUNCTXT_02+4(*) = '发起OA流程审批'.

  WRITE ICON_BIW_INFO_CATALOG AS ICON TO SSCRFIELDS-FUNCTXT_03+0(4).
  SSCRFIELDS-FUNCTXT_03+4(*) = '下载报表'.


AT SELECTION-SCREEN.
  DATA UCOMM TYPE SYUCOMM.
  UCOMM = SSCRFIELDS-UCOMM.

      MESSAGE S000 WITH UCOMM DISPLAY LIKE 'E'.

      IF UCOMM = 'FC01'.
        DATA LV_FILE TYPE STRING.

        GS_TEMPLATE-NAME = '姓名'.
        APPEND GS_TEMPLATE TO GT_TEMPLATE.

          MESSAGE 'MANU1' TYPE 'S'.

          CALL FUNCTION 'WS_FILENAME_GET'
           EXPORTING
*             DEF_FILENAME           = ' '
*             DEF_PATH               = ' '
             MASK                   = ',excel,*.xls,'
             MODE                   = 'S'
*             TITLE                  = ' '
           IMPORTING
             FILENAME               = LV_FILE
*             RC                     =
*           EXCEPTIONS
*             INV_WINSYS             = 1
*             NO_BATCH               = 2
*             SELECTION_CANCEL       = 3
*             SELECTION_ERROR        = 4
*             OTHERS                 = 5
                    .


        CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
*           BIN_FILESIZE                    =
            FILENAME                        = LV_FILE
*           FILETYPE                        = 'ASC'
*           APPEND                          = ' '
*           WRITE_FIELD_SEPARATOR           = ' '
*           HEADER                          = '00'
*           TRUNC_TRAILING_BLANKS           = ' '
*           WRITE_LF                        = 'X'
*           COL_SELECT                      = ' '
*           COL_SELECT_MASK                 = ' '
*           DAT_MODE                        = ' '
*           CONFIRM_OVERWRITE               = ' '
*           NO_AUTH_CHECK                   = ' '
*           CODEPAGE                        = ' '
*           IGNORE_CERR                     = ABAP_TRUE
*           REPLACEMENT                     = '#'
*           WRITE_BOM                       = ' '
*           TRUNC_TRAILING_BLANKS_EOL       = 'X'
*           WK1_N_FORMAT                    = ' '
*           WK1_N_SIZE                      = ' '
*           WK1_T_FORMAT                    = ' '
*           WK1_T_SIZE                      = ' '
*           WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
*           SHOW_TRANSFER_STATUS            = ABAP_TRUE
*           VIRUS_SCAN_PROFILE              = '/SCET/GUI_DOWNLOAD'
*         IMPORTING
*           FILELENGTH                      =
          TABLES
            DATA_TAB                        = GT_TEMPLATE
*           FIELDNAMES                      =
*         EXCEPTIONS
*           FILE_WRITE_ERROR                = 1
*           NO_BATCH                        = 2
*           GUI_REFUSE_FILETRANSFER         = 3
*           INVALID_TYPE                    = 4
*           NO_AUTHORITY                    = 5
*           UNKNOWN_ERROR                   = 6
*           HEADER_NOT_ALLOWED              = 7
*           SEPARATOR_NOT_ALLOWED           = 8
*           FILESIZE_NOT_ALLOWED            = 9
*           HEADER_TOO_LONG                 = 10
*           DP_ERROR_CREATE                 = 11
*           DP_ERROR_SEND                   = 12
*           DP_ERROR_WRITE                  = 13
*           UNKNOWN_DP_ERROR                = 14
*           ACCESS_DENIED                   = 15
*           DP_OUT_OF_MEMORY                = 16
*           DISK_FULL                       = 17
*           DP_TIMEOUT                      = 18
*           FILE_NOT_FOUND                  = 19
*           DATAPROVIDER_EXCEPTION          = 20
*           CONTROL_FLUSH_ERROR             = 21
*           OTHERS                          = 22
                  .
        IF SY-SUBRC <> 0.
* Implement suitable error handling here
        ENDIF.





      ENDIF.

START-OF-SELECTION.
MESSAGE '导入成功' TYPE 'I'.


END-OF-SELECTION.