Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- * Version 2, December 2004
- *
- *Everyone is permitted to copy and distribute verbatim or modified
- *copies of this license document, and changing it is allowed as long
- *as the name is changed.
- * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- * TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- *
- * 0. You just DO WHAT THE FUCK YOU WANT TO.
- ******************************************************************************************************
- * and in the global data (TOP-include...) you need to define a
- DATA gr_gos type ref to zcl_cs_insp_gos.
- * call this form in PBO of your program
- * you must place a custom container with name 'GPO1' in dynpro '0100' (or change the code below ...)
- FORM gos_activate.
- DATA: ls_borident TYPE borident.
- ls_borident-objtype = 'BUS2102'.
- ls_borident-objkey = '0070000023'.
- gr_gos = zcl_cs_insp_gos=>factory( iv_dynnr = '0100'
- iv_repid = sy-repid
- iv_cname = 'GOS1'
- is_borident = ls_borident ).
- ENDFORM.
- ******************************************************************************************************
- * now have two classes. This example uses two global ones:
- ** zcl_cs_insp_gos, a singleton factory helper
- ** zcl_cs_insp_gos_att, the redefinition of cl_gos_attachments
- ******************************************************************************************************
- CLASS zcl_cs_insp_gos DEFINITION
- PUBLIC
- FINAL
- CREATE PRIVATE .
- PUBLIC SECTION.
- TYPES: gty_v_cname type char20. "dynpro container name
- CLASS-METHODS factory
- IMPORTING
- !is_borident TYPE borident
- !iv_repid TYPE syrepid DEFAULT sy-repid
- !iv_dynnr TYPE sydynnr
- !iv_cname TYPE gty_v_cname "dynpro container name
- RETURNING VALUE(ro_gos) TYPE REF TO zcl_cs_insp_gos.
- DATA ms_borident TYPE borident .
- DATA mv_repid TYPE syrepid .
- DATA mv_dynnr TYPE sydynnr .
- DATA mv_cname TYPE gty_v_cname.
- PROTECTED SECTION.
- PRIVATE SECTION.
- METHODS constructor
- IMPORTING
- !is_borident TYPE borident
- !iv_repid TYPE syrepid DEFAULT sy-repid
- !iv_dynnr TYPE sydynnr
- !iv_cname TYPE gty_v_cname. "dynpro container name
- CLASS-DATA go_me TYPE REF TO zcl_cs_insp_gos .
- DATA mo_container TYPE REF TO cl_gui_custom_container.
- DATA mo_bitem TYPE REF TO cl_browser_item.
- DATA mo_gos_att type ref to zcl_cs_insp_gos_att.
- ENDCLASS.
- CLASS ZCL_CS_INSP_GOS IMPLEMENTATION.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Private Method ZCL_CS_INSP_GOS->CONSTRUCTOR
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IS_BORIDENT TYPE BORIDENT
- * | [--->] IV_REPID TYPE SYREPID (default =SY-REPID)
- * | [--->] IV_DYNNR TYPE SYDYNNR
- * | [--->] IV_CNAME TYPE GTY_V_CNAME
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD constructor.
- ASSERT: iv_dynnr IS NOT INITIAL,
- iv_repid IS NOT INITIAL,
- is_borident IS NOT INITIAL.
- me->mv_dynnr = iv_dynnr.
- me->mv_repid = iv_repid.
- me->ms_borident = is_borident.
- me->mv_cname = iv_cname.
- CREATE OBJECT me->mo_container
- EXPORTING
- container_name = me->mv_cname
- style = cl_gui_control=>ws_border
- repid = me->mv_repid
- dynnr = me->mv_dynnr
- EXCEPTIONS
- cntl_error = 1
- cntl_system_error = 2
- create_error = 3
- lifetime_error = 4
- lifetime_dynpro_dynpro_link = 5
- OTHERS = 6
- .
- IF sy-subrc <> 0.
- BREAK-POINT.
- * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
- * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
- ENDIF.
- me->mo_bitem = new cl_sobl_bor_item( is_bor = me->ms_borident ).
- me->mo_gos_att = new #( io_object = me->mo_bitem
- io_container = me->mo_container
- ip_mode = 'D' )."display only
- me->mo_gos_att->display( ).
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Static Public Method ZCL_CS_INSP_GOS=>FACTORY
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IS_BORIDENT TYPE BORIDENT
- * | [--->] IV_REPID TYPE SYREPID (default =SY-REPID)
- * | [--->] IV_DYNNR TYPE SYDYNNR
- * | [--->] IV_CNAME TYPE GTY_V_CNAME
- * | [<-()] RO_GOS TYPE REF TO ZCL_CS_INSP_GOS
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD factory.
- * singleton factory with property checks
- IF go_me IS BOUND.
- IF go_me->ms_borident NE is_borident
- OR go_me->mv_dynnr NE iv_dynnr
- OR go_me->mv_repid NE iv_repid
- OR go_me->mv_cname NE iv_cname.
- CLEAR: go_me.
- ENDIF.
- ENDIF.
- IF go_me IS NOT BOUND.
- go_me = NEW #( iv_dynnr = iv_dynnr
- iv_repid = iv_repid
- iv_cname = iv_cname
- is_borident = is_borident ).
- ENDIF.
- ro_gos = go_me.
- ENDMETHOD.
- ENDCLASS.
- ******************************************************************************************************
- CLASS zcl_cs_insp_gos_att DEFINITION
- PUBLIC
- INHERITING FROM cl_gos_attachments
- CREATE PUBLIC .
- PUBLIC SECTION.
- METHODS get_gos_menu
- REDEFINITION .
- PROTECTED SECTION.
- METHODS set_toolbar
- REDEFINITION .
- PRIVATE SECTION.
- ENDCLASS.
- CLASS ZCL_CS_INSP_GOS_ATT IMPLEMENTATION.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Public Method ZCL_CS_INSP_GOS_ATT->GET_GOS_MENU
- * +-------------------------------------------------------------------------------------------------+
- * | [<-()] RO_RESULT TYPE REF TO CL_CTMENU
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD get_gos_menu.
- * redefined: no menu!
- *SUPER->GET_GOS_MENU( ).
- ENDMETHOD.
- * <SIGNATURE>---------------------------------------------------------------------------------------+
- * | Instance Protected Method ZCL_CS_INSP_GOS_ATT->SET_TOOLBAR
- * +-------------------------------------------------------------------------------------------------+
- * | [--->] IO_SETTINGS TYPE REF TO CL_LIST_SETTINGS
- * +--------------------------------------------------------------------------------------</SIGNATURE>
- METHOD set_toolbar.
- * redifined: just no toolbar !
- *SUPER->SET_TOOLBAR(
- * IO_SETTINGS = IO_SETTINGS
- * ).
- FIELD-SYMBOLS: <lv_func> TYPE ui_func,
- <lc> TYPE any.
- REFRESH:
- io_settings->gt_bmenu,
- io_settings->gt_toolbar_custom,
- io_settings->gt_toolbar_exclude.
- DATA: lr_obj TYPE REF TO cl_abap_objectdescr.
- * disable ALL possible toolbar functions
- lr_obj ?= cl_abap_objectdescr=>describe_by_name( 'CL_GUI_ALV_GRID' ).
- LOOP AT lr_obj->attributes[] ASSIGNING FIELD-SYMBOL(<ls_attr>) WHERE is_constant = abap_true.
- CHECK <ls_attr>-name(6) EQ 'MC_FC_'.
- APPEND INITIAL LINE TO io_settings->gt_toolbar_exclude ASSIGNING <lv_func>.
- ASSIGN ('CL_GUI_ALV_GRID')=>(<ls_attr>-name) TO <lc>.
- <lv_func> = <lc>.
- ENDLOOP.
- ENDMETHOD.
- ENDCLASS.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement