FOR BEGINNERS
Posted by vamshikrishna srirangam 4 Oct, 2014
hi every one in this blog i am going to show you how tabbed guibb works.
SCENARIO : here tabbed guibb contains four tabs,each tab embeds one interface view of the
component.however on the first tab contains the check boxes.
each check box is related to the visibility of the remaining tabs i.e if we click on the first check box TAB2
is visible or if we click on the second check box TAB3 is visible.
PLEASE SEE THE BELOW SCREEN SHOTS:
I USED FPM_OIF_COMPONENT.
WHEN THE COMPONENT LOADED.
COMPONENT CONTROLLER :
CODE IN ACTIVE_FIRST_TAB:
types:
BEGIN OF ty_s_tab,
variant TYPE string,
id TYPE string,
name TYPE string,
END OF ty_s_tab .
types:
ty_t_tab TYPE STANDARD TABLE OF ty_s_tab .
TRY.
CALL METHOD WD_THIS->GO_TABBED->GET_TABS
EXPORTING
IV_VARIANT_ID = LV_VARIANT_ID
IMPORTING
ET_TAB
= LT_TAB.
CATCH CX_FPM_FLOORPLAN .
ENDTRY.
do 3 times.
lo_el_check = lo_nd_check->create_element( ).
lo_nd_check->bind_element( new_item = lo_el_check set_initial_elements = abap_false ).
enddo.
ENDIF.
CODE IN OVERRIDE_CONFIG_TABBED
DATA lv_VISIBLE TYPE BOOLE_D.
DATA lv_id TYPE string.
DATA lv_name TYPE string.
CASE io_tabbed->mo_event->mv_event_id.
WHEN 'FPM_START'.
WD_THIS->GO_TABBED = IO_TABBED.
wd_this->active_first_tab(
*
lo_tabbed =
).
WHEN 'ADD_TAB'.
io_tabbed->mo_event->MO_EVENT_DATA->get_value( EXPORTING iv_key = 'ID' IMPORTING ev_value =
lv_id ).
io_tabbed->mo_event->MO_EVENT_DATA->get_value( EXPORTING iv_key = 'NAME' IMPORTING ev_value
= lv_name ).
endcase.
CODE IN WDDOINIT :
wd_this->initialize_box( ).
VIEW CONTROLLER:
CODE IN ONACTIONON_CHECK_BOX :
types:
BEGIN OF ty_s_tab,
variant TYPE string,
id TYPE string,
name TYPE string,
END OF ty_s_tab .
types:
ty_t_tab TYPE STANDARD TABLE OF ty_s_tab .
DATA:LV_VARIANT_ID TYPE STRING,
LT_TAB TYPE TY_T_TAB,
LS_TAB LIKE LINE OF LT_TAB,
LV_INDEX TYPE I.
CASE ID.
WHEN 'TABLE_CHECK_BOX_EDITOR'.
DATA: lo_fpm TYPE REF TO if_fpm,
TRY.
CALL METHOD WD_COMP_CONTROLLER->GO_TABBED->GET_TABS
EXPORTING
IV_VARIANT_ID = LV_VARIANT_ID
IMPORTING
ET_TAB
= LT_TAB.
CATCH CX_FPM_FLOORPLAN .
ENDTRY.
READ TABLE LT_TAB INTO LS_TAB INDEX LV_INDEX + 1.
IF lv_check_box = 'X'.
lo_fpm = cl_fpm=>get_instance( ).
lo_event = cl_fpm_event=>create_by_id( 'ADD_TAB' ).
lo_event->MO_EVENT_DATA->set_value( iv_key = 'ID' IV_VALUE = LS_TAB-ID ).
lo_event->MO_EVENT_DATA->set_value( iv_key = 'NAME' iv_value = LS_TAB-NAME ).
lo_fpm->raise_event( io_event = lo_event ).
ELSEIF lv_check_box = ' '.
lo_fpm = cl_fpm=>get_instance( ).
lo_event = cl_fpm_event=>create_by_id( 'DELETE_TAB' ).
lo_event->MO_EVENT_DATA->set_value( iv_key = 'ID' IV_VALUE = LS_TAB-ID ).
lo_event->MO_EVENT_DATA->set_value( iv_key = 'NAME' iv_value = LS_TAB-NAME ).
lo_fpm->raise_event( io_event = lo_event ).
ENDIF.
ENDCASE.