build_tree

来源:互联网 发布:猎人mm 源码 编辑:程序博客网 时间:2024/06/07 07:14
REPORT ZSTEST_001.
TYPE-POOLS fibs,stree.
TYPE-POOLS:slis.
DATA t_node TYPE snodetext.
DATA it_node LIKE TABLE OF t_node,
       wa_node LIKE t_node.
DATAt_fieldcat    TYPE slis_t_fieldcat_alv,
      fs_fieldcat   TYPE slis_fieldcat_alv.
DATA:w_repid LIKE sy-repid.
*Internal Table declarations
DATABEGIN OF fs_scarr,
        carrid LIKE scarr-carrid,
      END OF fs_scarr.
DATA:BEGIN OF fs_spfli,
        carrid LIKE spfli-carrid,
        connid LIKE spfli-connid,
     END OF fs_spfli.
DATA:BEGIN OF fs_sflight,
        carrid LIKE sflight-carrid,
        connid LIKE sflight-connid,
        fldate LIKE sflight-fldate,
     END OF fs_sflight.
DATA:BEGIN OF fs_sbook,
        carrid LIKE sbook-carrid,
        connid LIKE sbook-connid,
        fldate LIKE sbook-fldate,
        bookid LIKE sbook-bookid,
     END OF fs_sbook.
DATA:t_scarr LIKE TABLE OF fs_scarr,
     t_spfli LIKE TABLE OF fs_spfli,
     t_sflight LIKE TABLE OF fs_sflight,
     t_sbook LIKE TABLE OF fs_sbook.

START-OF-SELECTION.
  PERFORM get_data.
  PERFORM build_tree.
  PERFORM display_tree.
*&----------------------------------------------------------------*
*&      Form  get_data
*&----------------------------------------------------------------*
FORM get_data .
  SELECT carrid
         FROM scarr
         INTO TABLE t_scarr.
  SELECT carrid
          connid
          FROM spfli
          INTO TABLE t_spfli
          FOR ALL ENTRIES IN t_scarr
          WHERE carrid EQ t_scarr-carrid.
ENDFORM.                    " get_data
*&----------------------------------------------------------------*
*&      Form  build_tree
*&----------------------------------------------------------------*
FORM build_tree .
  CLEARit_node,
         wa_node.
  SORTt_scarr BY carrid,
        t_spfli BY carrid connid,
        t_sflight BY carrid connid fldate,
        t_sbook BY carrid connid fldate bookid.
  wa_node-type 'T'.
  wa_node-name 'Flight Details'.
  wa_node-tlevel '01'.
  wa_node-nlength '15'.
  wa_node-color '4'.
  wa_node-text 'Flight'.
  wa_node-tlength ='20'.
  wa_node-tcolor 3.
  APPEND wa_node TO it_node.
  CLEAR wa_node.
  LOOP AT t_scarr INTO fs_scarr.
    wa_node-type 'P'.
    wa_node-name 'CARRID'.
    wa_node-tlevel '02'.
    wa_node-nlength '8'.
    wa_node-color '1'.
    wa_node-text fs_scarr-carrid.
    wa_node-tlength ='20'.
    wa_node-tcolor 4.
    APPEND wa_node TO it_node.
    CLEAR wa_node.
    LOOP AT t_spfli INTO fs_spfli WHERE carrid EQ fs_scarr-carrid.
      wa_node-type 'P'.
      wa_node-name 'CONNID'.
      wa_node-tlevel '03'.
      wa_node-nlength '8'.
      wa_node-color '1'.
      wa_node-text fs_spfli-connid.
      wa_node-tlength ='20'.
      wa_node-tcolor 4.
      APPEND wa_node TO it_node.
      CLEAR wa_node.
    ENDLOOP.
  ENDLOOP.
ENDFORM.                    " build_tree

FORM display_tree.
*Fm for constructing the tree
  CALL FUNCTION 'RS_TREE_CONSTRUCT'
    TABLES
      nodetab it_node.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
*FM for displaying the tree
  CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
    EXPORTING
      callback_program     sy-repid
      check_duplicate_name '1'
      color_of_node        '4'
      color_of_mark        '3'
      color_of_link        '1'
      color_of_match       '5'
      node_length          30
      text_length          75
      use_control          'L'.
ENDFORM.                    " build_tree
0 0
原创粉丝点击