Академический Документы
Профессиональный Документы
Культура Документы
i_callback_user_command
= 'USER_COMMAND'
i_structure_name
= 'SFLIGHT'
it_events
= gt_events
TABLES
t_outtab
= gt_outtab
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*****************************************************************
* FORM html_top_of_page
*****************************************************************
FORM html_top_of_page USING top TYPE REF TO cl_dd_document.
CALL METHOD top->add_text
EXPORTING
text
= 'Hello world '
sap_style = 'heading'.
CALL METHOD top->add_gap
EXPORTING
width = 200.
CALL METHOD top->add_picture
EXPORTING
picture_id = 'ENJOYSAP_LOGO'.
ENDFORM.
"html_top_of_page
****************************************************************
* Form context_menu
****************************************************************
FORM context_menu USING e_object TYPE REF TO cl_ctmenu.
DATA: l_smenu TYPE REF TO cl_ctmenu.
IF e_object IS BOUND.
*
Create custom Sub-menu to hide column on which right
*
mouse button will be clicked
CREATE OBJECT l_smenu.
CALL METHOD l_smenu->add_function
EXPORTING
fcode = 'ZFN1'
text = 'Hide Column'(001).
CALL METHOD e_object->add_submenu
EXPORTING
menu = l_smenu
text = 'Hide'(002).
ENDIF.
ENDFORM.
"CONTEXT_MENU
******************************************************************
* Form user_command
******************************************************************
FORM user_command USING r_ucomm TYPE sy-ucomm
ls_selfield TYPE slis_selfield.
DATA: g_grid TYPE REF TO cl_gui_alv_grid,
t_catalog TYPE lvc_t_fcat,
w_catalog TYPE lvc_s_fcat,
l_repid TYPE sy-repid.
CASE r_ucomm.
When 'hide column' sub-menu is clicked from the context menu
then hide the column from where this is happened
WHEN 'ZFN1'.
*
Get the global instance of the ALV grid as well as
*
it's field catalog info.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_callback_program = l_repid
e_grid
= g_grid
et_fieldcat_lvc
= t_catalog.
CHECK l_repid = g_repid.
IF g_grid IS BOUND AND t_catalog[] IS NOT INITIAL.
*
Set the 'NO_OUT' attribute of the catalog to 'X'
w_catalog-no_out = 'X'.
*
Modify the field with this above value
*
on which right click occured
MODIFY t_catalog FROM w_catalog TRANSPORTING no_out
WHERE fieldname = ls_selfield-fieldname.
IF sy-subrc = 0.
*
Set the field catalog with this modified one
CALL METHOD g_grid->set_frontend_fieldcatalog
EXPORTING
it_fieldcatalog = t_catalog.
ENDIF.
ENDIF.
WHEN OTHERS.
* Do nothing
ENDCASE.
ls_selfield-refresh = 'X'.
ENDFORM.
"USER_COMMAND
*
*
Output: