DATA : it_scarr TYPE TABLE OF scarr,
wa_scarr TYPE scarr,
it_spfli TYPE TABLE OF spfli,
wa_spfli TYPE spfli,
it_flight TYPE TABLE OF sflight,
wa_flight TYPE sflight,
ok_code TYPE sy-ucomm,
o_tree TYPE REF TO cl_simple_tree_model,
o_dock TYPE REF TO cl_gui_docking_container.
START-OF-SELECTION.
PERFORM data_fetch.
END-OF-SELECTION.
CALL SCREEN 100.
*———————————————————–*
FORM data_fetch .
SELECT * FROM scarr INTO TABLE it_scarr.
IF it_scarr IS NOT INITIAL.
SELECT * FROM spfli INTO TABLE it_spfli
FOR ALL ENTRIES IN it_scarr WHERE carrid = it_scarr-carrid.
IF it_spfli IS NOT INITIAL.
SELECT * FROM sflight INTO TABLE it_flight
FOR ALL ENTRIES IN it_spfli WHERE carrid = it_spfli-carrid AND connid = it_spfli-connid.
ENDIF.
ENDIF.
ENDFORM. ” DATA_FETCH
*————————————————————*
MODULE status_0100 OUTPUT.
SET PF-STATUS ‘STATUS’.
* SET TITLEBAR ‘xxx’.
ENDMODULE. ” STATUS_0100 OUTPUT
*————————————————————-*
MODULE process_container OUTPUT.
IF o_dock IS NOT BOUND.
CREATE OBJECT o_dock
EXPORTING
ratio = 30.
ENDIF.
ENDMODULE. ” PROCESS_CONTAINER OUTPUT
*————————————————————*
MODULE process_tree OUTPUT.
IF o_tree IS NOT BOUND.
CREATE OBJECT o_tree
EXPORTING node_selection_mode = cl_simple_tree_model=>node_sel_mode_single.
CALL METHOD o_tree->create_tree_control
EXPORTING
parent = o_dock.
PERFORM add_nodes USING o_tree.
ENDIF.
ENDMODULE. ” PROCESS_TREE OUTPUT
*&————————————————————-*
*& Module USER_COMMAND_0100 INPUT
*&————————————————————-*
* text
*———————————————————–*
MODULE user_command_0100 INPUT.
CASE ok_code.
WHEN ‘BACK’ OR ‘EXIT’ OR ‘CANCEL’.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. ” USER_COMMAND_0100 INPUT
*————————————————————*
FORM add_nodes USING obj_tree TYPE REF TO cl_simple_tree_model.
DATA : wa_node TYPE treemsnodt.
DATA : date_text TYPE char10.
CALL METHOD obj_tree->add_node
EXPORTING
node_key = ‘ROOT’
isfolder = ‘X’
text = ‘FLIGHT DETAILS’
expander = ‘X’.
LOOP AT it_scarr INTO wa_scarr.
wa_node-node_key = wa_scarr-carrid.
wa_node-text = wa_scarr-carrname.
CALL METHOD obj_tree->add_node
EXPORTING
node_key = wa_node-node_key
relative_node_key = ‘ROOT’
relationship = cl_simple_tree_model=>relat_last_child
isfolder = ‘X’
text = wa_node-text
expander = ‘X’.
ENDLOOP.
LOOP AT it_spfli INTO wa_spfli.
CONCATENATE wa_spfli-carrid
wa_spfli-connid
INTO wa_node-node_key SEPARATED BY space.
wa_node-relatkey = wa_spfli-carrid.
CONCATENATE wa_spfli-carrid
wa_spfli-connid ‘:’
wa_spfli-cityfrom ‘->’
wa_spfli-cityto INTO wa_node-text SEPARATED BY space.
CALL METHOD obj_tree->add_node
EXPORTING
node_key = wa_node-node_key
relative_node_key = wa_node-relatkey
relationship = cl_simple_tree_model=>relat_last_child
isfolder = ‘X’
text = wa_node-text
expander = ‘X’.
ENDLOOP.
LOOP AT it_flight INTO wa_flight.
CONCATENATE wa_flight-carrid
wa_flight-connid
wa_flight-fldate INTO wa_node-node_key
SEPARATED BY space.
CONCATENATE wa_flight-carrid
wa_flight-connid INTO wa_node-relatkey
SEPARATED BY space.
WRITE wa_flight-fldate TO date_text.
wa_node-text = date_text.
CALL METHOD obj_tree->add_node
EXPORTING
node_key = wa_node-node_key
relative_node_key = wa_node-relatkey
relationship = cl_simple_tree_model=>relat_last_child
isfolder = space
text = wa_node-text
expander = space.
ENDLOOP.
ENDFORM. ” ADD_NODES
*————————————————————*
SCREEN 100 FLOW LOGIC
PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE process_container.
MODULE process_tree.
PROCESS AFTER INPUT.
MODULE user_command_0100.
*———————————————————–*
OUTPUT
