创建组建步骤省略
..
创建节点
参考类型
CARRID NOD_SPFLI 0 Type SPFLI-CARRID
CONNID NOD_SPFLI 0 Type SPFLI-CONNID
COUNTRYFR NOD_SPFLI 0 Type SPFLI-COUNTRYFR
CITYFROM NOD_SPFLI 0 Type SPFLI-CITYFROM
TEXT NOD_SPFLI 0 Type STRING
HIERACHICAL_STATENOD_SPFLI 0 Type WDUI_C_TABLE_HIERACHICAL_STATE
LEVEL NOD_SPFLI 0 Type I
UI界面:CTABLE
UI界面:第一列
UI界面:第二列
UI界面:第三列
初始化代码
CARRID Importing S_CARR_ID
EXPAND Importing WDY_BOOLEAN
INIT Importing WDY_BOOLEAN
METHOD m_set_data . DATA:lo_nd_nod_spfli TYPE REF TO if_wd_context_node, lt_carrid TYPE wd_this->elements_nod_spfli, ls_carrid LIKE LINE OF lt_carrid, lt_spfli TYPE wd_this->elements_nod_spfli, ls_spfli LIKE LINE OF lt_spfli, lt_nod_spfli_temp TYPE wd_this->elements_nod_spfli, ls_nod_spfli_temp LIKE LINE OF lt_nod_spfli_temp, lt_nod_spfli TYPE wd_this->elements_nod_spfli, ls_nod_spfli LIKE LINE OF lt_nod_spfli. *- 获取节点数据 -* wd_context->get_child_node( name = ‘NOD_SPFLI‘ )->get_static_attributes_table( IMPORTING table = lt_nod_spfli_temp ). SORT lt_nod_spfli_temp BY text. * DELETE ADJACENT DUPLICATES FROM lt_nod_spfli_temp COMPARING text. DELETE lt_nod_spfli_temp WHERE carrid NE ‘‘. *- 初始化数据 -* CLEAR ls_spfli. ls_spfli-carrid = ‘AA‘. ls_spfli-connid = ‘1001‘. ls_spfli-countryfr = ‘中国‘. ls_spfli-cityfrom = ‘深圳‘. APPEND ls_spfli TO lt_spfli. CLEAR ls_spfli. ls_spfli-carrid = ‘AA‘. ls_spfli-connid = ‘1002‘. ls_spfli-countryfr = ‘中国‘. ls_spfli-cityfrom = ‘北京‘. APPEND ls_spfli TO lt_spfli. CLEAR ls_spfli. ls_spfli-carrid = ‘AA‘. ls_spfli-connid = ‘1003‘. ls_spfli-countryfr = ‘中国‘. ls_spfli-cityfrom = ‘上海‘. APPEND ls_spfli TO lt_spfli. CLEAR ls_spfli. ls_spfli-carrid = ‘AB‘. ls_spfli-connid = ‘2001‘. ls_spfli-countryfr = ‘英国‘. ls_spfli-cityfrom = ‘伦敦‘. APPEND ls_spfli TO lt_spfli. CLEAR ls_spfli. ls_spfli-carrid = ‘AB‘. ls_spfli-connid = ‘2002‘. ls_spfli-countryfr = ‘英国‘. ls_spfli-cityfrom = ‘曼切斯特‘. APPEND ls_spfli TO lt_spfli. CLEAR ls_spfli. ls_spfli-carrid = ‘AC‘. ls_spfli-connid = ‘3001‘. ls_spfli-countryfr = ‘美国‘. ls_spfli-cityfrom = ‘纽约‘. APPEND ls_spfli TO lt_spfli. CLEAR ls_spfli. ls_spfli-carrid = ‘AC‘. ls_spfli-connid = ‘3002‘. ls_spfli-countryfr = ‘英国‘. ls_spfli-cityfrom = ‘洛杉矶‘. APPEND ls_spfli TO lt_spfli. *- 设置层级 -* * 01 none * 02 indent * 03 expanded * 04 collapsed * 05 collapsedPlus * 06 expandedMinus * 07 expandedTop * 08 marktotals * 09 leaf SORT lt_spfli BY carrid connid. lt_carrid = lt_spfli. DELETE ADJACENT DUPLICATES FROM lt_carrid COMPARING carrid. LOOP AT lt_carrid INTO ls_carrid. "层级1 CLEAR ls_nod_spfli. IF init EQ ‘X‘. ls_nod_spfli-hierachical_state = cl_wd_c_tbl_hierarchical_cell=>e_hierachical_state-expanded. ELSE. READ TABLE lt_nod_spfli_temp INTO ls_nod_spfli_temp WITH KEY text = ls_carrid-carrid BINARY SEARCH. IF sy-subrc EQ 0. ls_nod_spfli-hierachical_state = ls_nod_spfli_temp-hierachical_state. ENDIF. ENDIF. IF carrid EQ ls_carrid-carrid. IF expand EQ ‘X‘. ls_nod_spfli-hierachical_state = cl_wd_c_tbl_hierarchical_cell=>e_hierachical_state-expanded. ELSE. ls_nod_spfli-hierachical_state = cl_wd_c_tbl_hierarchical_cell=>e_hierachical_state-collapsed. ENDIF. ENDIF. ls_nod_spfli-text = ls_carrid-carrid. ls_nod_spfli-level = 0. APPEND ls_nod_spfli TO lt_nod_spfli. IF ls_nod_spfli-hierachical_state EQ cl_wd_c_tbl_hierarchical_cell=>e_hierachical_state-collapsed. CONTINUE. ENDIF. "层级2 LOOP AT lt_spfli INTO ls_spfli WHERE carrid EQ ls_carrid-carrid. CLEAR ls_nod_spfli. MOVE-CORRESPONDING ls_spfli TO ls_nod_spfli. ls_nod_spfli-text = ls_spfli-connid. ls_nod_spfli-level = 1. ls_nod_spfli-hierachical_state = cl_wd_c_tbl_hierarchical_cell=>e_hierachical_state-leaf. APPEND ls_nod_spfli TO lt_nod_spfli. ENDLOOP. ENDLOOP. *- 绑定节点数据 -* SORT lt_spfli BY carrid connid. wd_context->get_child_node( name = ‘NOD_SPFLI‘ )->bind_table( new_items = lt_nod_spfli set_initial_elements = abap_true ). ENDMETHOD.
触发折叠代码
CONTEXT_ELEMENT IF_WD_CONTEXT_ELEMENT
EXPAND WDY_BOOLEAN
ID STRING
METHOD onactionon_status_action . DATA:lv_carrid TYPE s_carr_id. " Report message context_element->get_attribute( EXPORTING name = `TEXT` IMPORTING value = lv_carrid ). wd_this->m_set_data( EXPORTING carrid = lv_carrid expand = expand ). ENDMETHOD.
测试结果
CTABLE HIERARCHICAL(CTABLE 显示层级)
原文:https://www.cnblogs.com/SAPxiaox/p/14326718.html