alv tree

*&---------------------------------------------------------------------* *& Report  BCALV_TREE_SIMPLE_DEMO                                      * *&                                                                     * *&---------------------------------------------------------------------* *&                                                                     * *&                                                                     * *&---------------------------------------------------------------------*

report  bcalv_tree_simple_demo.

class cl_gui_column_tree definition load. class cl_gui_cfw definition load.

data tree1  type ref to cl_gui_alv_tree_simple.

include <icon>. include bcalv_simple_event_receiver.

data: gt_sflight      type sflight occurs 0,      "Output-Table       gt_fieldcatalog type lvc_t_fcat, "Fieldcatalog       gt_sort         type lvc_t_sort, "Sortiertabelle       ok_code         like sy-ucomm.   "OK-Code

start-of-selection.

end-of-selection.

  call screen 100.

*&---------------------------------------------------------------------* *&      Form  BUILD_FIELDCATALOG *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* form build_fieldcatalog. * get fieldcatalog   call function 'LVC_FIELDCATALOG_MERGE'        exporting             i_structure_name = 'SFLIGHT'        changing             ct_fieldcat      = gt_fieldcatalog.

* change fieldcatalog   data: ls_fieldcatalog type lvc_s_fcat.   loop at gt_fieldcatalog into ls_fieldcatalog.     case ls_fieldcatalog-fieldname.       when 'CARRID' or 'CONNID' or 'FLDATE'.         ls_fieldcatalog-no_out = 'X'.         ls_fieldcatalog-key    = ''.       when 'PRICE' or 'SEATSOCC' or 'SEATSMAX' or 'PAYMENTSUM'.         ls_fieldcatalog-do_sum = 'X'.     endcase.     modify gt_fieldcatalog from ls_fieldcatalog.   endloop.

endform.                               " BUILD_FIELDCATALOG *&---------------------------------------------------------------------* *&      Form  BUILD_OUTTAB *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* *  -->  p1        text *  <--  p2        text *----------------------------------------------------------------------* form build_outtab.

  select * from sflight into table gt_sflight. *              up to 1 rows.

endform.                               " BUILD_OUTTAB

*&---------------------------------------------------------------------* *&      Form  BUILD_SORT_TABLE *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* *  -->  p1        text *  <--  p2        text *----------------------------------------------------------------------* form build_sort_table.

  data ls_sort_wa type lvc_s_sort.

* create sort-table   ls_sort_wa-spos = 1.   ls_sort_wa-fieldname = 'CARRID'.   ls_sort_wa-up = 'X'.   ls_sort_wa-subtot = 'X'.   append ls_sort_wa to gt_sort.

  ls_sort_wa-spos = 2.   ls_sort_wa-fieldname = 'CONNID'.   ls_sort_wa-up = 'X'.   ls_sort_wa-subtot = 'X'.   append ls_sort_wa to gt_sort.

  ls_sort_wa-spos = 3.   ls_sort_wa-fieldname = 'FLDATE'.   ls_sort_wa-up = 'X'.   append ls_sort_wa to gt_sort.

endform.                               " BUILD_SORT_TABLE *&---------------------------------------------------------------------* *&      Module  PBO  OUTPUT *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* module pbo output.   if tree1 is initial.     perform init_tree.   endif.   set pf-status 'MAIN100'.

endmodule.                             " PBO  OUTPUT *&---------------------------------------------------------------------* *&      Module  PAI  INPUT *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* module pai input.

  case ok_code.     when 'EXIT' or 'BACK' or 'CANC'.       perform exit_program.

    when others.       call method cl_gui_cfw=>dispatch.   endcase.   clear ok_code. endmodule.                             " PAI  INPUT *&---------------------------------------------------------------------* *&      Form  exit_program *&---------------------------------------------------------------------* *       free object and leave program *----------------------------------------------------------------------* form exit_program.

  call method tree1->free.   leave program.

endform.                               " exit_program *&---------------------------------------------------------------------* *&      Form  register_events *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* *  -->  p1        text *  <--  p2        text *----------------------------------------------------------------------* 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_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_context_men_req.   append l_event to lt_events.   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_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.

* set Handler   data: l_event_receiver type ref to lcl_tree_event_receiver.   create object l_event_receiver.   set handler l_event_receiver->on_add_hierarchy_node                                                         for tree1. endform.                               " register_events *&---------------------------------------------------------------------* *&      Form  build_header *&---------------------------------------------------------------------* *       build table for html_header *----------------------------------------------------------------------* *  -->  p1        text *  <--  p2        text *----------------------------------------------------------------------* form build_comment using       pt_list_commentary type slis_t_listheader       p_logo             type sdydo_value.

  data: ls_line type slis_listheader. * * LIST HEADING LINE: TYPE H   clear ls_line.   ls_line-typ  = 'H'. * LS_LINE-KEY:  NOT USED FOR THIS TYPE   ls_line-info = 'ALV-tree-simple-Demo: flight-overview'.   "#EC NOTEXT   append ls_line to pt_list_commentary. * STATUS LINE: TYPE S   clear ls_line.   ls_line-typ  = 'S'.   ls_line-key  = 'valid to'.                                "#EC NOTEXT   ls_line-info = 'January 29 1999'.                         "#EC NOTEXT   append ls_line to pt_list_commentary.   ls_line-key  = 'time'.   ls_line-info = '2.00 pm'.                                 "#EC NOTEXT   append ls_line to pt_list_commentary. * ACTION LINE: TYPE A   clear ls_line.   ls_line-typ  = 'A'. * LS_LINE-KEY:  NOT USED FOR THIS TYPE   ls_line-info = 'up-to-date data'.                         "#EC NOTEXT   append ls_line to pt_list_commentary.

  p_logo = 'ENJOYSAP_LOGO'. endform. *&---------------------------------------------------------------------* *&      Form  init_tree *&---------------------------------------------------------------------* *       text *----------------------------------------------------------------------* *  -->  p1        text *  <--  p2        text *----------------------------------------------------------------------* FORM init_tree.   perform build_fieldcatalog.

  perform build_outtab.

  perform build_sort_table.

* 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'.

  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.

* create tree control   create object tree1     exporting         i_parent              = l_custom_container         i_node_selection_mode =                               cl_gui_column_tree=>node_sel_mode_multiple         i_item_selection      = 'X'         i_no_html_header      = ''         i_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.

* create info-table for html-header   data: lt_list_commentary type slis_t_listheader,         l_logo             type sdydo_value.   perform build_comment using                  lt_list_commentary                  l_logo.

* repid for saving variants   data: ls_variant type disvariant.   ls_variant-report = sy-repid.

* register events   perform register_events.

* create hierarchy   call method tree1->set_table_for_first_display           exporting                it_list_commentary   = lt_list_commentary                i_logo               = l_logo                i_background_id      = 'ALV_BACKGROUND'                i_save               = 'A'                is_variant            = ls_variant           changing                it_sort              = gt_sort                it_outtab            = gt_sflight                it_fieldcatalog      = gt_fieldcatalog.

* expand first level   call method tree1->expand_Tree          exporting              i_level = 1.

* optimize column-width   call method tree1->column_optimize            exporting                i_start_column = tree1->c_hierarchy_column_name                i_end_column   = tree1->c_hierarchy_column_name.

ENDFORM.                    " init_tree

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值