webdynpro中给不同的TAB标签设置数据

来源:互联网 发布:多益网络笔试都考什么 编辑:程序博客网 时间:2024/06/08 06:48

根据选取不同的TAB标签进行设置数据,参考下图:


1)首先定义一个属性;

2)给TAB组件设置事件;

代码:

METHOD ONACTIONTAB_SELECT .
  DATA: LO_NODE TYPE REF TO IF_WD_CONTEXT_NODE,
        LW_NAME TYPE STRING.

  DATA LO_EL_CONTEXT TYPE REF TO IF_WD_CONTEXT_ELEMENT.
  DATA LS_CONTEXT TYPE WD_THIS->ELEMENT_CONTEXT.
  DATA LV_TABCHOOSE TYPE WD_THIS->ELEMENT_CONTEXT-TABCHOOSE.

*   GET ELEMENT VIA LEAD SELECTION
  LO_EL_CONTEXT = WD_CONTEXT->GET_ELEMENT( ).

*   @TODO HANDLE NOT SET LEAD SELECTION
  IF LO_EL_CONTEXT IS INITIAL.
  ENDIF.

*   @TODO FILL ATTRIBUTE
*   LV_TABCHOOSE = 1.

  LW_NAME = WDEVENT->GET_STRING('TAB').

  IF LW_NAME CS 'TAB_1'.
    LV_TABCHOOSE = '1'.
  ELSEIF LW_NAME CS 'TAB_2'.
    LV_TABCHOOSE = '2'.
  ENDIF.
*   SET SINGLE ATTRIBUTE
  LO_EL_CONTEXT->SET_ATTRIBUTE(
    NAME =  `TABCHOOSE`
    VALUE = LV_TABCHOOSE ).
ENDMETHOD.

3)点击批量修改按钮时,获取TABCHOOSE属性;

 DATA lo_el_context TYPE REF TO if_wd_context_element.
  DATA ls_context TYPE wd_this->Element_context.
  DATA lv_tabchoose TYPE wd_this->Element_context-tabchoose.

* get element via lead selection
  lo_el_context = wd_context->get_element( ).
* @TODO handle not set lead selection

* get single attribute
  lo_el_context->get_attribute(
    EXPORTING
      name =  `TABCHOOSE`
    IMPORTING
      value = lv_tabchoose ).

  if lv_tabchoose eq 'TAB_1'.

    DATA LO_ND_ITOUT2_1 TYPE REF TO IF_WD_CONTEXT_NODE.

    DATA LT_ITOUT2_1 TYPE WD_THIS->ELEMENTS_ITOUT2_1.
    DATA LS_ITOUT2_1 TYPE WD_THIS->ELEMENT_ITOUT2_1.

* navigate from <CONTEXT> to <ITOUT2_1> via lead selection
    LO_ND_ITOUT2_1 = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_ITOUT2_1 ).

* @TODO handle non existant child
* IF lo_nd_itout2_1 IS INITIAL.
* ENDIF.

    LO_ND_ITOUT2_1->GET_STATIC_ATTRIBUTES_TABLE( IMPORTING TABLE = LT_ITOUT2_1 ).

* navigate from <CONTEXT> to <ITOUT2_1> via lead selection
    LO_ND_ITOUT2_1 = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_ITOUT2_1 ).

    LO_ND_ITOUT2_1->BIND_TABLE( NEW_ITEMS = LT_ITOUT2_1 SET_INITIAL_ELEMENTS = ABAP_TRUE ).

  

  elseif lv_tabchoose eq 'TAB_2'.
       
    DATA LO_ND_ITOUT2_2 TYPE REF TO IF_WD_CONTEXT_NODE.

    DATA LT_ITOUT2_2 TYPE WD_THIS->ELEMENTS_ITOUT2_2.
    DATA LS_ITOUT2_2 TYPE WD_THIS->ELEMENT_ITOUT2_2.

* navigate from <CONTEXT> to <ITOUT2_1> via lead selection
    LO_ND_ITOUT2_2 = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_ITOUT2_2 ).

* @TODO handle non existant child
* IF lo_nd_itout2_1 IS INITIAL.
* ENDIF.

    LO_ND_ITOUT2_2->GET_STATIC_ATTRIBUTES_TABLE( IMPORTING TABLE = LT_ITOUT2_2 ).

* navigate from <CONTEXT> to <ITOUT2_1> via lead selection
    LO_ND_ITOUT2_2 = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_ITOUT2_2 ).

* @TODO handle non existant child
* IF lo_nd_itout2_1 IS INITIAL.
* ENDIF.

** @TODO compute values
** e.g. call a model function
*
    LO_ND_ITOUT2_2->BIND_TABLE( NEW_ITEMS = LT_ITOUT2_2 SET_INITIAL_ELEMENTS = ABAP_TRUE ).
  endif.


原创粉丝点击