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 TYPEREF 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.