I've built an ALV Tree based on BCALV_TREE_DEMO. I've took some code and modified it for my program. The problem is the field name not shown and the parent not showing any data but the child does, like the picture shown. I wonder what happen?
**********************************************************************
**ALV Tree
**********************************************************************
***Declare Fieldcat
define m_fieldcat.
add 1 to ls_fieldcat-col_pos.
ls_fieldcat-fieldname = &1.
ls_fieldcat-scrtext_m = &2.
ls_fieldcat-key = &3.
ls_fieldcat-tabname = 'it_merge2'.
append ls_fieldcat to gt_fieldcat.
end-of-definition.
class cl_gui_column_tree definition load.
class cl_gui_cfw definition load.
data tree1 type ref to cl_gui_alv_tree.
include <icon>.
*include bcalv_toolbar_event_receiver.
include bcalv_tree_event_receiver.
*data: toolbar_event_receiver type ref to lcl_toolbar_event_receiver.
data: gt_fieldcat type lvc_t_fcat, " Field Catalog
ls_fieldcat type lvc_s_fcat, " WA Field Cat.
gt_sort type lvc_t_sort, " Sorting Table
ls_sort type lvc_s_sort, " WA Sort Tab.
ok_code like sy-ucomm, " OK-Code
gd_layout type slis_layout_alv. "Layout
data: fl_err type c,
d_posign type c.
*&---------------------------------------------------------------------*
*& Module STATUS_0555 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module status_0555 output.
set pf-status 'STAT555'.
if tree1 is initial.
perform init_tree.
endif.
call method cl_gui_cfw=>flush.
endmodule. " STATUS_0555 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0555 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module user_command_0555 input.
clear ok_code.
ok_code = sy-ucomm.
case ok_code.
when 'BACK' or 'EXIT' or 'CANC'.
call method tree1->free.
leave to screen 0.
when others.
call method cl_gui_cfw=>dispatch.
endcase.
clear ok_code.
endmodule. " USER_COMMAND_0555 INPUT
*&---------------------------------------------------------------------*
*& Form INIT_TREE
*&---------------------------------------------------------------------*
form init_tree .
perform build_fieldcatalog.
* create container for alv-tree
data: l_tree_container_name(30) type c,
l_custom_container type ref to cl_gui_custom_container.
l_tree_container_name = 'TREE1'.
if sy-batch is initial.
create object l_custom_container
exporting
container_name = l_tree_container_name
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
if sy-subrc <> 0.
message x208(00) with 'ERROR'.
endif.
endif.
* create tree control
create object tree1
exporting
parent = l_custom_container
node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
item_selection = 'X'
no_html_header = ''
no_toolbar = ''
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7.
if sy-subrc <> 0.
message x208(00) with 'ERROR'.
endif.
* create Hierarchy-header
data l_hierarchy_header type treev_hhdr.
perform build_hierarchy_header changing l_hierarchy_header.
* create info-table for html-header
data: lt_list_commentary type slis_t_listheader.
perform build_comment using lt_list_commentary.
* repid for saving variants
data: ls_variant type disvariant.
ls_variant-report = sy-repid.
* create hierarchy
call method tree1->set_table_for_first_display
exporting
it_list_commentary = lt_list_commentary
i_background_id = 'ALV_BACKGROUND'
i_save = 'A'
is_variant = ls_variant
changing
it_outtab = it_merge2
it_fieldcatalog = gt_fieldcat.
* create hierarchy
perform create_hierarchy.
* register events
perform register_events.
endform. " INIT_TREE
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
form build_fieldcatalog .
m_fieldcat 'VBELN' 'SO No.' 'X'.
m_fieldcat 'VKBUR' 'S.Off' ''.
m_fieldcat 'ERDAT' 'Created Date' ''.
m_fieldcat 'AUART' 'Type' ''.
m_fieldcat 'AUGRU' 'Order Reason' ''.
m_fieldcat 'KUNNR' 'Customer' ''.
m_fieldcat 'NAME1' 'Name' ''.
m_fieldcat 'ZUONR' 'Reff.Faktur' ''.
m_fieldcat 'FKDAT' 'Faktur Date' ''.
m_fieldcat 'MATNR' 'Material' ''.
m_fieldcat 'MAKTX' 'Description' ''.
m_fieldcat 'DT_DNR_T' 'Tr.DNR' ''.
m_fieldcat 'DT_PRC_T' 'Tr.Prin' ''.
m_fieldcat 'DT_DNR_D' 'Ds.DNR' ''.
m_fieldcat 'DT_PRC_D' 'Ds.Prin' ''.
m_fieldcat 'DT_DNR' 'T.DNR' ''.
m_fieldcat 'DT_PRC' 'T.Princ' ''.
m_fieldcat 'VT_DNR' 'B.DNR' ''.
m_fieldcat 'VT_PRC' 'B.Princ' ''.
m_fieldcat 'VTEXT' 'Prod.Hier' ''.
m_fieldcat 'KZWI1' 'Value' ''.
m_fieldcat 'KWMENG' 'Qty' ''.
endform. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form BUILD_HIERARCHY_HEADER
*&---------------------------------------------------------------------*
form build_hierarchy_header changing
p_hierarchy_header type treev_hhdr.
p_hierarchy_header-heading = 'Hierarchy Header'.
p_hierarchy_header-tooltip = 'This is the Hierarchy Header !'.
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
endform. " BUILD_HIERARCHY_HEADER
*&---------------------------------------------------------------------*
*& Form BUILD_COMMENT
*&---------------------------------------------------------------------*
form build_comment using pt_list_commentary type slis_t_listheader.
data: ls_line type slis_listheader.
*
* LIST HEADING LINE: TYPE H
clear ls_line.
ls_line-typ = 'H'.
ls_line-info = 'Blocked CD-DN Document'.
append ls_line to pt_list_commentary.
endform. " BUILD_COMMENT
*&---------------------------------------------------------------------*
*& Form CREATE_HIERARCHY
*&---------------------------------------------------------------------*
form create_hierarchy .
* add data to tree
data: l_vbeln_key type lvc_nkey,
l_matnr_key type lvc_nkey,
l_last_key type lvc_nkey.
loop at it_merge into wa_merge.
on change of wa_merge-vbeln.
perform add_vbeln_line using wa_merge
''
changing l_vbeln_key.
endon.
perform add_complete_line using wa_merge
l_vbeln_key
changing l_last_key.
endloop.
* this method must be called to send the data to the frontend
call method tree1->frontend_update.
endform. " CREATE_HIERARCHY
*&---------------------------------------------------------------------*
*& Form REGISTER_EVENTS
*&---------------------------------------------------------------------*
form register_events .
* define the events which will be passed to the backend
data: lt_events type cntl_simple_events,
l_event type cntl_simple_event.
* define the events which will be passed to the backend
l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_checkbox_change.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_click.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
append l_event to lt_events.
call method tree1->set_registered_events
exporting
events = lt_events
exceptions
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
* set Handler
data: l_event_receiver type ref to lcl_tree_event_receiver.
create object l_event_receiver.
set handler l_event_receiver->handle_node_ctmenu_request
for tree1.
set handler l_event_receiver->handle_node_ctmenu_selected
for tree1.
set handler l_event_receiver->handle_item_ctmenu_request
for tree1.
set handler l_event_receiver->handle_item_ctmenu_selected
for tree1.
endform. " REGISTER_EVENTS