fpm tabbed guibb for beginners

Upload: surya-narayan-padhy

Post on 21-Feb-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    1/19

    Generated by Jive on 2014-12-23+01:00

    1

    Web Dynpro ABAP: FPM TABBED GUIBBFOR BEGINNERS

    Posted by vamshikrishna srirangam4 Oct, 2014hi every one in this blog i am going to show you how tabbed guibbworks.

    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.

    NOW I ENABLE FIRST CHECK BOX

    http://scn.sap.com/people/vamshikrishna.srirangam
  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    2/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    2

    NOW I ENABLES ALL CHECK BOXES ONE BY ONE

    NOW I DISABLE FOURTH CHECK BOX.

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    3/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    3

    SO THIS IS MY REQUIREMENT LET US START.

    WEBDYNPRO COMPONENT: Z_DEMO_OBJECT1

    IMPLEMENTED INTERFACES:

    1)IF_FPM_UI_BUILDING_BLOCK: when we add this interface automatically FPM methods ( FLUSH - to send

    the data to Central Data Model,NEEDS_FOR_CONFIRMATION - to provide the data loss popup if data not

    saved ,PROCESS_EVENT - to process the fpm events,PROCESS_BEFORE_OUTPUT - to read the data to

    be displayed ,AFTER_FAILED_EVENT - to handle the failed events ) are loaded in to the

    COMPONENT CONTROLLER.

    2) IF_FPM_TABBED_CONF_EXIT : when we add this interface only OVERRIDE_CONFIG_TABBED method

    is added which is triggered after every fpm event raised.

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    4/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    4

    COMPONENT CONTROLLER :

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    5/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    5

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    6/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    6

    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 .

    DATA:LV_VARIANT_ID TYPE STRING,

    LT_TAB TYPE TY_T_TAB,

    LS_TAB LIKE LINE OF LT_TAB.

    CALL METHOD WD_THIS->GO_TABBED->GET_CURRENT_VARIANT

    RECEIVING

    RV_VARIANT_ID = LV_VARIANT_ID.

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    7/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    7

    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.

    LOOP AT LT_TAB INTO LS_TAB.

    IF SY-TABIX GT 1.

    CALL METHOD WD_THIS->GO_TABBED->SET_TAB_VISIBLE

    EXPORTING

    IV_TAB_ID = LS_TAB-ID

    IV_VISIBLE = ' '.

    CLEAR LS_TAB.

    ENDIF.

    ENDLOOP.

    CODE ININITIALIZE_BOX:

    DATA lo_nd_check TYPE REF TO if_wd_context_node.

    DATA lo_el_check type ref to if_wd_context_element.

    DATA lt_check TYPE wd_this->Elements_check.

    DATA ls_check TYPE wd_this->Element_check.

    * navigate from to via lead selection

    lo_nd_check = wd_context->get_child_node( name = wd_this->wdctx_check ).

    * @TODO handle non existant child

    IF NOT lo_nd_check IS INITIAL.

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    8/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    8

    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 = " ref to if_fpm_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 ).

    CALL METHOD IO_TABBED->SET_TAB_VISIBLE

    EXPORTING

    IV_TAB_ID = LV_ID

    IV_VISIBLE = 'X'.

    WHEN 'DELETE_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 ).

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    9/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    9

    CALL METHOD IO_TABBED->SET_TAB_VISIBLE

    EXPORTING

    IV_TAB_ID = LV_ID

    IV_VISIBLE = ' '.

    endcase.

    CODE IN WDDOINIT:

    wd_this->initialize_box( ).

    VIEW CONTROLLER:

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    10/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    10

    http://scn.sap.com/servlet/JiveServlet/showImage/38-114494-555982/5.2.jpghttp://scn.sap.com/servlet/JiveServlet/showImage/38-114494-555981/5.1.jpg
  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    11/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    11

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    12/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    12

    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,

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    13/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    13

    lo_event TYPE REF TO cl_fpm_event.

    CALL METHOD CONTEXT_ELEMENT->GET_INDEX

    RECEIVING

    MY_INDEX = LV_INDEX.

    DATA lo_nd_check TYPE REF TO if_wd_context_node.

    DATA lo_el_check TYPE REF TO if_wd_context_element.

    DATA ls_check TYPE wd_this->Element_check.

    DATA lv_check_box TYPE wd_this->Element_check-check_box.

    * navigate from to via lead selection

    lo_nd_check = wd_context->get_child_node( name = wd_this->wdctx_check ).

    * @TODO handle non existant child

    * IF lo_nd_check IS INITIAL.

    * ENDIF.

    * get element via lead selection

    lo_el_check = lo_nd_check->get_element( index = LV_INDEX ).

    * alternative access via index

    * lo_el_check = lo_nd_check->get_element( index = 1 ).

    * @TODO handle not set lead selectionIF lo_el_check IS INITIAL.

    ENDIF.

    * get single attribute

    lo_el_check->get_attribute(

    EXPORTING

    name = `CHECK_BOX`

    IMPORTING

    value = lv_check_box ).

    CALL METHOD WD_COMP_CONTROLLER->GO_TABBED->GET_CURRENT_VARIANT

    RECEIVING

    RV_VARIANT_ID = LV_VARIANT_ID.

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    14/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    14

    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.

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    15/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    15

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    16/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    16

    VIEWS TAB2_VIEW -------> TAB2

    TAB3_VIEW --------->TAB3

    TAB4_VIEW --------->TAB4

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    17/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    17

    FOR APPLICATION CONFIGURATION .

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    18/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    Generated by Jive on 2014-12-23+01:00

    18

  • 7/24/2019 Fpm Tabbed Guibb for Beginners

    19/19

    Web Dynpro ABAP: FPM TABBED GUIBB FOR BEGINNERS

    G d b Ji

    151 Views Tags: web_dynpro

    There are no comments on this post

    http://scn.sap.com/community/web-dynpro-abap/blog/tags#/?tags=web_dynpro