给选择屏幕添加功能按钮(以添加下载模板为例)--看完就能直接用了!

这篇文章主要讲下如何在屏幕上添加按钮,以及添加下载模板的功能。


首先讲下如何在屏幕上添加按钮:

1、首先定义一些东西:

TABLESSSCRFIELDS.        
DATA:   FUNCTXT   TYPE SMP_DYNTXT.    


2、在定义选择屏幕之前先定义这个function key  (据说这种方式最多可以添加4个。)

SELECTION-SCREEN:FUNCTION KEY 1.               " download


3、在initialization里面输入你这个按钮的名字text-002

INITIALIZATION.
  FUNCTXT-ICON_ID       ICON_XXL.                   这个是icon的样子可以到一个表ICON里面查
  FUNCTXT-ICON_TEXT     TEXT-002.
  SSCRFIELDS-FUNCTXT_01 FUNCTXT.


4、在AT SELECTION-SCREEN.里面定义操作就好了

AT SELECTION-SCREEN.
  CASE SSCRFIELDS-UCOMM.
    WHEN 'FC01'.
      PERFORM FRM_DOWNLOAD_DATA.                 这个就是下载模板用的form。

  ENDCASE.



下面就介绍如何实现下载模板的功能:

1、用t-code SMW0可以上传模板,上传成功之后,在表WWWDATA里面可以查到。

      

            


然后就是程序的实现:直接copy过来了:

FORM FRM_DOWNLOAD_DATA .
  DATADEF_FILENAME    TYPE STRING,
        P_OBJID         TYPE WWWDATATAB-OBJID,
        P_KEY           TYPE WWWDATATAB,
        L_RC            TYPE SY-SUBRC,
        P_DESC          TYPE RLGRAP-FILENAME.

  P_OBJID  'ZFII028'.                                          这里放你刚才通过SMW0设置的名字
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      TEXT   TEXT-002
    EXCEPTIONS
      OTHERS 1.

*  GET FILENAME
  PERFORM FRM_GET_FILENAME1 USING     TEXT-005
                                      TEXT-006
                            CHANGING  DEF_FILENAME.

  IF DEF_FILENAME IS NOT INITIAL.
    P_DESC  DEF_FILENAME.
    SELECT SINGLE *
      INTO CORRESPONDING FIELDS OF P_KEY
      FROM WWWDATA
      WHERE SRTF2 0
      AND RELID   'MI'
      AND OBJID   P_OBJID.

    IF SY-SUBRC 0.
      CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
        EXPORTING
          KEY         P_KEY
          DESTINATION P_DESC
        IMPORTING
          RC          L_RC
        EXCEPTIONS
          OTHERS      1.

      IF L_RC <> 0.
        MESSAGE TEXT-003 TYPE 'E'.
      ELSE.
        MESSAGE TEXT-004 TYPE 'S'.
      ENDIF .
    ELSE.
      "Do nothing
    ENDIF .
  ELSE.
    "Do nothing
  ENDIF .

ENDFORM.                    " FRM_DOWNLOAD_DATA

*&---------------------------------------------------------------------*
*&      Form  FRM_GET_FILENAME1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_TEXT_001  text
*      -->P_TEXT_002  text
*      <--P_DEF_FILENAME  text
*----------------------------------------------------------------------*
FORM FRM_GET_FILENAME1  USING FILEFILTER INIT_DIR CHANGING FILENAME.

  DATAACTION   TYPE I,                               " user action
        L_TILTER TYPE STRING,                          " Window TITle
        PATH     TYPE STRING,                          " PATH
        FULLPATH TYPE STRING.                          " PATH

  FIELD-SYMBOLS<F> TYPE FILE_TABLE.                  " File name
  L_TILTER  TEXT-032.
  PATH      INIT_DIR.
  FULLPATH  INIT_DIR.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
      WINDOW_TITLE         L_TILTER
      FILE_FILTER          FILEFILTER
      INITIAL_DIRECTORY    INIT_DIR
      PROMPT_ON_OVERWRITE  'X'
    CHANGING
      FILENAME             FILENAME
      PATH                 PATH
      FULLPATH             FULLPATH
      USER_ACTION          ACTION
    EXCEPTIONS
      CNTL_ERROR           1
      ERROR_NO_GUI         2
      NOT_SUPPORTED_BY_GUI 3
      OTHERS               4.
  IF SY-SUBRC <> 0.
    "Do nothing
  ELSE.
    "Do nothing
  ENDIF.

  CALL METHOD CL_GUI_CFW=>FLUSH
    EXCEPTIONS
      CNTL_SYSTEM_ERROR 1
      CNTL_ERROR        2
      OTHERS            3.
  FILENAME FULLPATH.

ENDFORM.                    " FRM_GET_FILENAME1







  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值