1. 程式人生 > 其它 >WDA學習(26):Phase Indicator使用

WDA學習(26):Phase Indicator使用

1.19 UI Element:Phase Indicator使用

本例項測試建立Phase Indicator;

執行結果:

1.建立Component,View: V_PHASE_IND;

2.建立Context節點;

建立NODE:NODE_PHASE_STATUS,記錄每個階段狀態;

建立Attribute:STA_P1,型別:WDUI_PHASE_STATUS,Phase1階段狀態;

建立Attribute:STA_P2,型別:WDUI_PHASE_STATUS,Phase2階段狀態;

建立Attribute:STA_P3,型別:WDUI_PHASE_STATUS,Phase3階段狀態;

建立Attribute:SELECT_PHASE,型別:String,記錄當前選中Phase;

建立NODE:NODE_KEY,記錄下拉框選擇值;

建立Attribute:STATUS,記錄下拉框選擇狀態;

3.建立Layout UI Element

建立UI Element:

建立PhaseIndicator:PI1

selectedPhase:繫結Attribute, NODE_PHASE_STATUS.SELECT_PHASE;

onSelect:繫結Method,SEL_PI;

建立Phase:P1

status:繫結Attribute, NODE_PHASE_STATUS.STA_P1;

建立Phase:P2

status:繫結Attribute, NODE_PHASE_STATUS.STA_P2;

建立Phase:P3

status:繫結Attribute,NODE_PHASE_STATUS.STA_P3;

建立DropDownByKey:DROPBYKEY

selectedKey:繫結Attribute, NODE_KEY.STATUS;

onSelect:SEL_STATUS;

4.建立Method頁籤方法

Method:INIT_PHASE_STATUS,初始化Phase status,在WDDOINIT方法中呼叫;

程式碼例項:

  DATA:lo_node TYPE
 REF TO if_wd_context_node.   DATA:lo_element TYPE REF TO if_wd_context_element.   DATA:lv_status TYPE wdui_phase_status VALUE '00'.   DATA:ls_status TYPE wd_this->element_node_phase_status.   "獲取節點   lo_node = wd_context->get_child_node( wd_this->wdctx_node_phase_status ).   lo_element = lo_node->get_element( ).   "設定初始值   ls_status-select_phase = 'P1'.   ls_status-sta_p1 = lv_status.   ls_status-sta_p2 = lv_status.   ls_status-sta_p3 = lv_status.   lo_node->set_static_attributes(     EXPORTING       static_attributes = ls_status   ). *  "設定初始值 *  lo_element->set_attribute( *    EXPORTING *      name = 'STA_P1' *      value = lv_status *  ). *    lo_element->set_attribute( *    EXPORTING *      name = 'STA_P1' *      value = lv_status *  ). * *  lo_element->set_attribute( *    EXPORTING *      name = 'STA_P1' *      value = lv_status *  ).

Method:ONACTIONSEL_PI,Action:SEL_PI對應方法

程式碼例項:

 DATA:lo_node TYPE REF TO if_wd_context_node.
  DATA:lo_element TYPE REF TO if_wd_context_element.
  DATA:lo_event TYPE REF TO cl_wd_custom_event.
  DATA:lv_str TYPE string.
  DATA:lv_msg TYPE string.
  DATA:lv_phase_status TYPE string.
  DATA:lo_dropdownkey TYPE REF TO CL_WD_DROPDOWN_BY_KEY.
  lo_event = wdevent.
  lv_str = lo_event->get_string(
      name 'PHASE'
  ).
  lv_msg '選擇phase:' && lv_str.
  wd_comp_controller->show_msg( msg = lv_msg  msg_type = 'S' ).

  "設定選擇的phase
  lo_node = wd_context->get_child_node( wd_this->wdctx_node_phase_status ).
  lo_element = lo_node->get_element( ).
  lo_element->set_attribute(
    EXPORTING
      name 'SELECT_PHASE'
      value = lv_str
  ).
  CASE lv_str.
    WHEN 'P1'.
      lo_element->get_attribute(
        EXPORTING
          name 'STA_P1'
        IMPORTING
          value = lv_phase_status
      ).
    WHEN 'P2'.
      lo_element->get_attribute(
        EXPORTING
          name 'STA_P2'
        IMPORTING
          value = lv_phase_status
      ).
    WHEN 'P3'.
      lo_element->get_attribute(
        EXPORTING
          name 'STA_P3'
        IMPORTING
          value = lv_phase_status
      ).
  ENDCASE.
  "設定當前下拉選擇值
  lo_dropdownkey ?= wd_this->v_view->get_element( id = 'DROPBYKEY' ).
  lo_dropdownkey->set_selected_key( lv_phase_status ).

Method: ONACTIONSEL_STATUS,Action:SEL_STATUS對應方法

程式碼例項:

 DATA:lo_node TYPE REF TO if_wd_context_node.
  DATA:lo_element TYPE REF TO if_wd_context_element.
  DATA:lo_event TYPE REF TO cl_wd_custom_event.
  DATA:lv_key TYPE wdui_phase_status.
  DATA:lv_phase TYPE string.
  lo_event = wdevent.
  "獲取選擇key
  lv_key = lo_event->get_string( name = 'KEY' ).

  lo_node = wd_context->get_child_node( wd_this->wdctx_node_phase_status ).
  lo_element = lo_node->get_element( ).
  lo_element->get_attribute(
    EXPORTING
      name 'SELECT_PHASE'
    IMPORTING
      value = lv_phase
  ).

  "設定對應選擇狀態
  CASE lv_phase.
    WHEN 'P1'.
      lo_element->set_attribute(
        EXPORTING
          name 'STA_P1'
          value = lv_key
      ).
    WHEN 'P2'.
      lo_element->set_attribute(
        EXPORTING
          name 'STA_P2'
          value = lv_key
      ).
    WHEN 'P3'.
      lo_element->set_attribute(
        EXPORTING
          name 'STA_P3'
          value = lv_key
      ).
  ENDCASE.