bin noch recht neu in SAP und ABAP und sitze gerade vor einem Problem, bei dem ich nicht weiter komme. Ich soll einen ALV Tree anzeigen, der 3 Hierarchie-Ebenen hat und bei dem jedes Blatt 2 Zahlen enthält. Diese 2 Zahlen sollen verglichen werden und in einer zusätzlichen Spalte soll per Ampel Icon angezeigt werden, ob sie übereinstimmen(grün für ja, rot für nein).
Habe mich dann mit dem Beispiel BCALV_TREE_SIMPLE_DEMO beschäftigt, dieses kopiert und meinen Anforderungen angepasst. Bin nun soweit, dass mir fast alles richtig angezeigt wird. Das einzige Problem ist, dass in den 2 oberen Hierarchie-Ebenen die Ampeln nicht angezeigt werden, an den Blättern aber schon. Es soll wie die Summen auf diesen Ebenen angezeigt werden, so dass eine rote Ampel da steht, wenn eine der Ampeln unter dem Knoten rot ist und eine grüne wenn alle Knoten darunter grün sind. Habe schon fast alle Felder vom Feldkatalog ausprobiert aber noch keinen Erfolg gehabt. Hat vielleicht jemand einen Tip was ich hier übersehe?
Ich hoffe ich habe es verständlich ausgedrückt.
Danke schonmal im Voraus.
Anbei noch meinen Code:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- *&---------------------------------------------------------------------*
- *& Report BCALV_TREE_SIMPLE_DEMO *
- *& *
- *&---------------------------------------------------------------------*
- *& *
- *& *
- *&---------------------------------------------------------------------*
- report z_frontend.
- INCLUDE Z_ICON.
- *include <icon>.
- INCLUDE Z_FRONTEND_EVENT_RECEIVER.
- *include bcalv_simple_event_receiver.
- BEGIN OF t_summen.
- END OF t_summen.
- gt_fieldcatalog type lvc_t_fcat, "Fieldcatalog
- gt_sort type lvc_t_sort, "Sortiertabelle
- ok_code like sy-ucomm. "OK-Code
- call screen 100.
- *&---------------------------------------------------------------------*
- *& Form BUILD_FIELDCATALOG
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- form build_fieldcatalog.
- * get fieldcatalog
- call function 'LVC_FIELDCATALOG_MERGE'
- exporting
- i_structure_name = 'ZTA_VERGLEICH'
- changing
- ct_fieldcat = gt_fieldcatalog.
- * change fieldcatalog
- ls_fieldcatalog-fieldname = 'ICON'.
- * ls_fieldcatalog-ref_table = 'ICON'.
- * ls_fieldcatalog-ref_field = 'ICON_D'.
- * ls_fieldcatalog-do_sum = 'X'.
- ls_fieldcatalog-col_pos = 6.
- ls_fieldcatalog-tabname = '1'.
- ls_fieldcatalog-icon = 'X'.
- ls_fieldcatalog-scrtext_l = 'gleich?'.
- ls_fieldcatalog-scrtext_m = 'gleich?'.
- ls_fieldcatalog-scrtext_s = 'gleich?'.
- ls_fieldcatalog-no_out = 'X'.
- ls_fieldcatalog-key = ''.
- ls_fieldcatalog-do_sum = 'X'.
- ls_fieldcatalog-scrtext_l = 'Bons'.
- ls_fieldcatalog-scrtext_m = 'Bons'.
- ls_fieldcatalog-scrtext_s = 'Bons'.
- ELSE.
- ls_fieldcatalog-scrtext_l = 'Summensatz'.
- ls_fieldcatalog-scrtext_m = 'Summensatz'.
- ls_fieldcatalog-scrtext_s = 'Summensatz'.
- *&---------------------------------------------------------------------*
- *& Form BUILD_OUTTAB
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- form build_outtab.
- wa-icon = icon_red_light.
- ELSE.
- wa-icon = icon_green_light.
- *&---------------------------------------------------------------------*
- *& Form BUILD_SORT_TABLE
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- form build_sort_table.
- * create sort-table
- ls_sort_wa-spos = 1.
- ls_sort_wa-fieldname = 'DATUM'.
- ls_sort_wa-up = 'X'.
- ls_sort_wa-subtot = 'X'.
- ls_sort_wa-spos = 2.
- ls_sort_wa-fieldname = 'FILIALE'.
- ls_sort_wa-up = 'X'.
- ls_sort_wa-subtot = 'X'.
- ls_sort_wa-spos = 3.
- ls_sort_wa-fieldname = 'ZAHLUNGSART'.
- ls_sort_wa-up = 'X'.
- *&---------------------------------------------------------------------*
- *& Module PBO OUTPUT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- module pbo output.
- perform init_tree.
- set pf-status 'MAIN100'.
- *&---------------------------------------------------------------------*
- *& Module PAI INPUT
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- case ok_code.
- perform exit_program.
- call method cl_gui_cfw=>dispatch.
- clear ok_code.
- *&---------------------------------------------------------------------*
- *& Form exit_program
- *&---------------------------------------------------------------------*
- * free object and leave program
- *----------------------------------------------------------------------*
- form exit_program.
- leave program.
- *&---------------------------------------------------------------------*
- *& Form register_events
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- form register_events.
- * define the events which will be passed to the backend
- l_event type cntl_simple_event.
- * define the events which will be passed to the backend
- l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
- l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
- l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
- l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
- l_event-eventid = cl_gui_column_tree=>eventid_header_click.
- l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
- call method tree1->set_registered_events
- exporting
- events = lt_events
- exceptions
- cntl_error = 1
- cntl_system_error = 2
- illegal_event_combination = 3.
- * set Handler
- create object l_event_receiver.
- set handler l_event_receiver->on_add_hierarchy_node
- for tree1.
- *&---------------------------------------------------------------------*
- *& Form init_tree
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM init_tree.
- perform build_fieldcatalog.
- perform build_outtab.
- perform build_sort_table.
- * create container for alv-tree
- l_custom_container type ref to cl_gui_custom_container.
- l_tree_container_name = 'TREE1'.
- create object l_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.
- * create tree control
- create object tree1
- exporting
- i_parent = l_custom_container
- i_node_selection_mode =
- cl_gui_column_tree=>node_sel_mode_multiple
- i_item_selection = 'X'
- i_no_html_header = 'X'
- i_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.
- * register events
- perform register_events.
- * create hierarchy
- call method tree1->set_table_for_first_display
- * exporting
- * i_background_id = 'ALV_BACKGROUND'
- * i_save = 'A'
- * is_variant = ls_variant
- changing
- it_sort = gt_sort
- it_outtab = gt_summendaten
- it_fieldcatalog = gt_fieldcatalog.
- * expand first level
- * call method tree1->expand_Tree
- * exporting
- * i_level = 1.
- * optimize column-width
- call method tree1->column_optimize.
- * exporting
- * i_start_column = tree1->c_hierarchy_column_name
- * i_end_column = tree1->c_hierarchy_column_name.
- GeSHi ©