REPORT z19_010.
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
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
*&---------------------------------------------------------------------*
* process before output
*----------------------------------------------------------------------*
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.
IF sy-subrc NE 0.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
titel = 'Automation Queue failure'(801)
txt1 = 'Internal error:'(802)
txt2 = 'A method in the automation queue'(803)
txt3 = 'caused a failure.'(804).
ENDIF.
ENDIF.
ENDMODULE. " PBO OUTPUT
*&---------------------------------------------------------------------*
*& Module PAI INPUT
*&---------------------------------------------------------------------*
* process after input
*----------------------------------------------------------------------*
MODULE pai INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'EXIT' OR 'BACK' OR 'CANC'.
PERFORM exit_program.
WHEN OTHERS.
* §6. Call dispatch to process toolbar functions
CALL METHOD cl_gui_cfw=>dispatch.
ENDCASE.
CALL METHOD cl_gui_cfw=>flush.
ENDMODULE. " PAI INPUT
*&---------------------------------------------------------------------*
*& Form init_tree
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM init_tree.
* §1b. Create ALV Tree Control and corresponding Container.
* create container for alv-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 tree control
CREATE OBJECT g_alv_tree
EXPORTING
parent = g_custom_container
node_selection_mode = cl_gui_column_tree=>node_sel_mode_multiple
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 create_hierarchy.
CALL METHOD g_alv_tree->frontend_update.
ENDFORM. " init_tree
*&---------------------------------------------------------------------*
*& Form build_hierarchy_header
*&---------------------------------------------------------------------*
* build hierarchy-header-information
*----------------------------------------------------------------------*
* -->P_L_HIERARCHY_HEADER strucxture for hierarchy-header
*----------------------------------------------------------------------*
FORM 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_header
*&---------------------------------------------------------------------*
*& Form exit_program
*&---------------------------------------------------------------------*
* free object and leave program
*----------------------------------------------------------------------*
FORM exit_program.
CALL METHOD g_custom_container->free.
LEAVE PROGRAM.
ENDFORM. " exit_program
*&---------------------------------------------------------------------*
*& Form create_hierarchy
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_hierarchy.
DATA: ls_sflight TYPE sflight,
lt_sflight TYPE sflight OCCURS 0,
l_carrid LIKE sflight-carrid,
l_carrid_last LIKE sflight-carrid.
DATA: l_node_key TYPE lvc_nkey,
l_node_key2 TYPE lvc_nkey,
l_node_key3 TYPE lvc_nkey,
l_node_text TYPE lvc_value,
l_relat_key TYPE lvc_nkey,
l_first_flg TYPE c.
SELECT * FROM sflight INTO TABLE lt_sflight UP TO g_max ROWS.
* 1. root node
l_relat_key = ''.
l_node_text = 'AIRPLANE'.
CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = l_relat_key
i_relationship = 6" cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
* is_outtab_line = ls_sflight
IMPORTING
e_new_node_key = l_node_key.
SORT lt_sflight BY carrid fldate.
LOOP AT lt_sflight INTO ls_sflight.
AT NEW carrid.
l_relat_key = l_node_key.
l_node_text = ls_sflight-carrid.
l_first_flg = 'X'.
CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = l_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
* is_outtab_line = ls_sflight
IMPORTING
e_new_node_key = l_node_key2.
ENDAT.
IF l_first_flg = 'X'.
l_relat_key = l_node_key2.
l_node_text = ls_sflight-fldate.
l_first_flg = 'X'.
CALL METHOD g_alv_tree->add_node
EXPORTING
i_relat_node_key = l_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
IMPORTING
e_new_node_key = l_node_key3.
ENDIF.
AT END OF carrid.
CLEAR l_first_flg.
ENDAT.
ENDLOOP.
ENDFORM. " create_hierarchy
댓글 2
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
610 | report zsapdoi_004. | sapjoy | 2008.12.26 | 2923 |
609 | FUNCTION Z_BAPI_ASSETNAME_SEARCH | sapjoy | 2009.01.30 | 2898 |
608 | INCLUDE Z16_001I01 | sapjoy | 2007.04.26 | 2887 |
607 | REPORT z17_20 | sapjoy | 2012.08.01 | 2880 |
606 | REPORT Z05_001 [3] | sapjoy | 2007.05.21 | 2880 |
605 | REPORT Z03_003 [7] | sapjoy | 2007.05.11 | 2876 |
604 | FORM set_field_catalogs_grid USING lt_fieldcat TYPE lvc_t_fcat. | sapjoy | 2007.01.03 | 2875 |
» | REPORT z19_010 [2] | sapjoy | 2007.04.06 | 2843 |
602 | REPORT z18_014 | sapjoy | 2007.03.09 | 2843 |
601 | Sub DOI_MACRO() | sapjoy | 2008.12.26 | 2842 |
600 | DBZF1SSEL | sapjoy | 2006.12.19 | 2842 |
599 | REPORT Z09_006 [1] | sapjoy | 2006.12.18 | 2839 |
598 | REPORT Z03_006 [5] | sapjoy | 2006.12.02 | 2812 |
597 | report zunicode_017. | sapjoy | 2008.11.21 | 2810 |
596 | REPORT Z07_016 | sapjoy | 2008.04.14 | 2804 |
595 | Report Z15_047 [3] | sapjoy | 2007.12.05 | 2798 |
594 | FIELD_EXIT_STCD2_0 | sapjoy | 2008.12.16 | 2792 |
593 | report zunicode_026. | sapjoy | 2008.11.21 | 2782 |
592 | REPORT Z18_001 | sapjoy | 2007.03.02 | 2774 |
591 | Z01_021 [1] | sapjoy | 2006.12.02 | 2771 |