Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report ZTREELOCAL
- *&
- *&---------------------------------------------------------------------*
- *&
- *&
- *&---------------------------------------------------------------------*
- REPORT ztreelocal.
- SELECTION-SCREEN BEGIN OF BLOCK blc1.
- PARAMETERS p_tplnr TYPE tplnr DEFAULT 'PS110-000777'.
- SELECTION-SCREEN END OF BLOCK blc1.
- *--------------------------------------------------------------------*]
- CLASS lcl_tree_node DEFINITION DEFERRED.
- *--------------------------------------------------------------------*
- INTERFACE lif_tree_node.
- METHODS
- : haschild
- RETURNING VALUE(r_bool) TYPE abap_bool
- , addchild
- IMPORTING i_name TYPE string
- i_parent TYPE REF TO lcl_tree_node
- , output
- .
- ENDINTERFACE.
- *--------------------------------------------------------------------*
- CLASS lcl_tree_node DEFINITION.
- PUBLIC SECTION.
- INTERFACES lif_tree_node.
- ALIASES
- : haschild FOR lif_tree_node~haschild
- , addchild FOR lif_tree_node~addchild
- , output FOR lif_tree_node~output
- .
- METHODS
- : constructor IMPORTING i_name TYPE string
- i_parent TYPE REF TO lcl_tree_node OPTIONAL
- .
- PRIVATE SECTION.
- DATA
- : name TYPE string
- , parent TYPE REF TO lcl_tree_node
- , childs TYPE TABLE OF REF TO lcl_tree_node
- .
- ENDCLASS.
- CLASS lcl_tree_node IMPLEMENTATION.
- *--------------------------------------------------------------------*
- METHOD constructor.
- me->name = i_name.
- me->parent = i_parent.
- ENDMETHOD.
- *--------------------------------------------------------------------*
- METHOD haschild.
- ENDMETHOD.
- *--------------------------------------------------------------------*
- METHOD addchild.
- DATA(lo_child) = NEW lcl_tree_node( i_name = i_name
- i_parent = i_parent ).
- APPEND lo_child TO childs.
- ENDMETHOD.
- *--------------------------------------------------------------------*
- METHOD output.
- WRITE / me->name.
- LOOP AT childs ASSIGNING FIELD-SYMBOL(<lo_child>).
- <lo_child>->output( ).
- ENDLOOP.
- ENDMETHOD.
- *--------------------------------------------------------------------*
- ENDCLASS.
- START-OF-SELECTION.
- BREAK-POINT.
- DATA(lo_root) = NEW lcl_tree_node( conv string( p_tplnr ) ).
- lo_root->addchild( i_name = CONV string( |{ p_tplnr }-001 | )
- i_parent = lo_root ).
- lo_root->output( ).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement