SAP ALV tree的一个最简单demo
发布日期:2021-06-30 14:06:20 浏览次数:2 分类:技术文章

本文共 7389 字,大约阅读时间需要 24 分钟。

report  zbcalv_tree_01.types: begin of ty_tree_node,                   id type char18,                   text type char40,       end of ty_tree_node.data: g_alv_tree         type ref to cl_gui_alv_tree,      g_custom_container type ref to cl_gui_custom_container.data: gt_sflight      type sflight occurs 0,      "Output-Table      gt_scala TYPE STANDARD TABLE OF ty_tree_node,      ok_code like sy-ucomm,      save_ok like sy-ucomm,           "OK-Code      g_max type i value 255.end-of-selection.  call screen 100.module pbo output.  set pf-status 'MAIN100'.  set titlebar 'MAINTITLE'.  if g_alv_tree is initial.    perform init_tree.    call method cl_gui_cfw=>flush      exceptions        cntl_system_error = 1        cntl_error        = 2.    assert sy-subrc = 0.  endif.endmodule.                             " PBO  OUTPUTmodule pai input.  save_ok = ok_code.  clear ok_code.  case save_ok.    when 'EXIT' or 'BACK' or 'CANC'.      perform exit_program.    when others.      call method cl_gui_cfw=>dispatch.  endcase.  call method cl_gui_cfw=>flush.endmodule.                             " PAI  INPUTform init_tree.  data: l_tree_container_name(30) type c.  l_tree_container_name = 'CCONTAINER1'.     create object g_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'(100).    endif.  create object g_alv_tree    exporting        parent              = g_custom_container        node_selection_mode = cl_gui_column_tree=>node_sel_mode_single        item_selection      = 'X'        no_html_header      = 'X'        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'.                          "#EC NOTEXT  endif.  data l_hierarchy_header type treev_hhdr.  perform build_hierarchy_header changing l_hierarchy_header.  call method g_alv_tree->set_table_for_first_display    exporting      i_structure_name    = 'SFLIGHT'      is_hierarchy_header = l_hierarchy_header    changing      it_outtab           = gt_sflight. "table must be empty !  perform jerry_create_tree.  call method g_alv_tree->frontend_update.endform.form jerry_create_tree.   DATA: p_relat_key type lvc_nkey,         p_node_key type lvc_nkey,         ls_sflight LIKE LINE OF gt_sflight.   call method g_alv_tree->add_node    exporting      i_relat_node_key = p_relat_key      i_relationship   = cl_gui_column_tree=>relat_last_child      i_node_text      = 'Jerry'      is_outtab_line   = ls_sflight    importing      e_new_node_key   = p_node_key.   call method g_alv_tree->add_node    exporting      i_relat_node_key = p_node_key      i_relationship   = cl_gui_column_tree=>relat_last_child      i_node_text      = 'Scala'      is_outtab_line   = ls_sflight    importing      e_new_node_key   = p_node_key.   "ls_sflight-id = 'Spring'.   "ls_sflight-text = 'SSH Integration'.   call method g_alv_tree->add_node    exporting      i_relat_node_key = p_node_key      i_relationship   = cl_gui_column_tree=>relat_last_child      i_node_text      = 'i042416'      is_outtab_line   = ls_sflight    importing      e_new_node_key   = p_node_key.endform.                             " init_treeform build_hierarchy_header changing                               p_hierarchy_header type treev_hhdr.  p_hierarchy_header-heading = 'Month/Carrier/Date'(300).  p_hierarchy_header-tooltip = 'Flights in a month'(400).  p_hierarchy_header-width = 30.  p_hierarchy_header-width_pix = ' '.endform.                               " build_hierarchy_headerform exit_program.  call method g_custom_container->free.  leave program.endform.                               " exit_program# 另一个demoREPORT  zbcalv_tree_01.TYPES: BEGIN OF ty_tree_node,         id   TYPE char18,         text TYPE char40,       END OF ty_tree_node.DATA: g_alv_tree         TYPE REF TO cl_gui_alv_tree,      g_custom_container TYPE REF TO cl_gui_custom_container,      gt_scala           TYPE STANDARD TABLE OF ty_tree_node,      ls_sflight         LIKE LINE OF gt_scala,      ok_code            LIKE sy-ucomm,      save_ok            LIKE sy-ucomm,           "OK-Code      g_max              TYPE i VALUE 255.END-OF-SELECTION.  DATA(lo_tool) = NEW zcl_alv_tool( ).  DATA(lt_fieldcat) = lo_tool->get_fieldcat_by_data( ls_sflight ).  CALL SCREEN 100.MODULE pbo OUTPUT.  SET PF-STATUS 'MAIN100'.  SET TITLEBAR 'MAINTITLE'.  IF g_alv_tree IS INITIAL.    PERFORM init_tree.    CALL METHOD cl_gui_cfw=>flush      EXCEPTIONS        cntl_system_error = 1        cntl_error        = 2.    ASSERT sy-subrc = 0.  ENDIF.ENDMODULE.                             " PBO  OUTPUTMODULE pai INPUT.  save_ok = ok_code.  CLEAR ok_code.  CASE save_ok.    WHEN 'EXIT' OR 'BACK' OR 'CANC'.      PERFORM exit_program.    WHEN OTHERS.      CALL METHOD cl_gui_cfw=>dispatch.  ENDCASE.  CALL METHOD cl_gui_cfw=>flush.ENDMODULE.                             " PAI  INPUTFORM init_tree.  g_custom_container = lo_tool->GET_CONTAINER( 'CCONTAINER1' ).  g_alv_tree = lo_tool->get_tree( g_custom_container ).  DATA l_hierarchy_header TYPE treev_hhdr.  PERFORM build_hierarchy_header CHANGING l_hierarchy_header.  CALL METHOD g_alv_tree->set_table_for_first_display    EXPORTING      is_hierarchy_header = l_hierarchy_header    CHANGING      it_fieldcatalog     = lt_fieldcat      it_outtab           = gt_scala.  PERFORM jerry_create_tree.  CALL METHOD g_alv_tree->frontend_update.ENDFORM.FORM jerry_create_tree.  DATA: p_relat_key TYPE lvc_nkey,        p_node_key  TYPE lvc_nkey.  CALL METHOD g_alv_tree->add_node    EXPORTING      i_relat_node_key = p_relat_key      i_relationship   = cl_gui_column_tree=>relat_last_child      i_node_text      = 'Jerry'      is_outtab_line   = ls_sflight    IMPORTING      e_new_node_key   = p_node_key.  CALL METHOD g_alv_tree->add_node    EXPORTING      i_relat_node_key = p_node_key      i_relationship   = cl_gui_column_tree=>relat_last_child      i_node_text      = 'Scala'      is_outtab_line   = ls_sflight    IMPORTING      e_new_node_key   = p_node_key.  ls_sflight-id = 'Spring'.  ls_sflight-text = 'SSH Integration'.  CALL METHOD g_alv_tree->add_node    EXPORTING      i_relat_node_key = p_node_key      i_relationship   = cl_gui_column_tree=>relat_last_child      i_node_text      = 'i042416'      is_outtab_line   = ls_sflight    IMPORTING      e_new_node_key   = p_node_key.ENDFORM.                             " init_treeFORM build_hierarchy_header CHANGING p_hierarchy_header TYPE treev_hhdr.  p_hierarchy_header-heading = 'Month/Carrier/Date'(300).  p_hierarchy_header-tooltip = 'Flights in a month'(400).  p_hierarchy_header-width = 30.  p_hierarchy_header-width_pix = ' '.ENDFORM.                               " build_hierarchy_headerFORM exit_program.  CALL METHOD g_custom_container->free.  LEAVE PROGRAM.ENDFORM.                               " exit_program

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

转载地址:https://jerry.blog.csdn.net/article/details/104002507 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:如何免费获得Gartner关于field Service management各产品魔力象限报告
下一篇:Jerry自己写的ABAP处理中文字符的工具类

发表评论

最新留言

很好
[***.229.124.182]2024年04月17日 00时36分18秒