Create a custom GUI using SAP menu painter, create custom toolbar buttons,
custom menu
Menu painter is used to create custom GUI with custom buttons, custom toolbar and custom
menu for a specific ABAP program.
The t-code for menu painter is SE41, we can create menu using SET PF-STATUS keyword from
ABAP program .
Syntax: SET PF-STATUS '<MENU NAME>' .
START-OF-SELECTION.
Add below code after START-OF-SELECTION to create custon GUI,save and double click on
menu name to create custon GUI.
SET PF-STATUS 'ZSAPN_MENU'. "double click on ZSAPN_MENU to create menu
Click Yes
You can create menus, toolbar buttons, function keys by using menu painter.
Expand Menu Bar, provide name as Download, double click on Download, provide code
as DLOD and text as Download, save and activate.
Go back to program and add below code to download (when ever user click on download).
AT USER-COMMAND
This is a event which is used to implement user actions, it will trigger whenever a function button
is pressed or a function code is pressed.
SY-UCOMM
SY-UCOMM is a system variable which stores the function code of the current action.
GUI_DOWNLOAD
GUI_DOWNLOAD is the function modules which is used to download data from an internal table
to local computer.
BIN_FILESIZE
FILENAME = 'C:\MARA.XLS'
FILETYPE = 'ASC'
*
WRITE_FIELD_SEPARATOR
HEADER = '00'
TRUNC_TRAILING_BLANKS
WRITE_LF = 'X'
COL_SELECT
COL_SELECT_MASK
CONFIRM_OVERWRITE
NO_AUTH_CHECK
IGNORE_CERR
= ABAP_TRUE
REPLACEMENT
= '#'
WRITE_BOM
TRUNC_TRAILING_BLANKS_EOL
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 = IT_MARA
= 'X'
*
*
FIELDNAMES
EXCEPTIONS
FILE_WRITE_ERROR
=1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER
INVALID_TYPE
NO_AUTHORITY
UNKNOWN_ERROR
HEADER_NOT_ALLOWED
SEPARATOR_NOT_ALLOWED
FILESIZE_NOT_ALLOWED
HEADER_TOO_LONG
DP_ERROR_CREATE
DP_ERROR_SEND
= 12
DP_ERROR_WRITE
= 13
UNKNOWN_DP_ERROR
ACCESS_DENIED
DP_OUT_OF_MEMORY
DISK_FULL
DP_TIMEOUT
FILE_NOT_FOUND
DATAPROVIDER_EXCEPTION
CONTROL_FLUSH_ERROR
OTHERS = 22
=3
=4
=5
=6
=7
=8
=9
= 10
= 11
= 14
= 15
= 16
= 17
= 18
= 19
= 20
= 21
.
IF SY-SUBRC = 0.
MESSAGE 'Data downloaded successfully' TYPE 'S'.
ENDIF.
ENDIF.
START-OF-SELECTION.
AT USER-COMMAND .
IF SY-UCOMM = 'DLOD'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
*
BIN_FILESIZE
FILENAME = 'C:\MARA.XLS'
FILETYPE = 'ASC'
*
WRITE_FIELD_SEPARATOR
HEADER = '00'
TRUNC_TRAILING_BLANKS
WRITE_LF = 'X'
=''
=''
COL_SELECT
COL_SELECT_MASK
CONFIRM_OVERWRITE
NO_AUTH_CHECK
IGNORE_CERR
= ABAP_TRUE
REPLACEMENT
= '#'
WRITE_BOM
TRUNC_TRAILING_BLANKS_EOL
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
*
*
=''
=''
=''
=''
=''
= 'X'
=''
=''
=''
=''
= '/SCET/GUI_DOWNLOAD'
IMPORTING
FILELENGTH
TABLES
DATA_TAB = IT_MARA
*
*
FIELDNAMES
EXCEPTIONS
FILE_WRITE_ERROR
=1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER
INVALID_TYPE
NO_AUTHORITY
UNKNOWN_ERROR
HEADER_NOT_ALLOWED
SEPARATOR_NOT_ALLOWED
FILESIZE_NOT_ALLOWED
HEADER_TOO_LONG
DP_ERROR_CREATE
DP_ERROR_SEND
= 12
DP_ERROR_WRITE
= 13
=3
=4
=5
=6
=7
=8
=9
= 10
= 11
UNKNOWN_DP_ERROR
= 14
ACCESS_DENIED
DP_OUT_OF_MEMORY
DISK_FULL
DP_TIMEOUT
FILE_NOT_FOUND
DATAPROVIDER_EXCEPTION
CONTROL_FLUSH_ERROR
OTHERS = 22
= 15
= 16
= 17
= 18
= 19
= 20
= 21
.
IF SY-SUBRC = 0.
MESSAGE 'Data downloaded successfully' TYPE 'S'.
ENDIF.
ENDIF.
Provide a material type, execute the report, click on download link from menu, the data will be
donloaded into C:\MARA.XLS, check it (when ever you are testing please close the excel filw or
else it will get a run time error ).