*&---------------------------------------------------------------------* *& (c) Edwin Leippi Software-Entwicklung * *& Email : info@leippi.de * *& Datum : 01.03.2008 * *& * *& Der Autor übernimmt keine Haftung für Schäden, * *& die durch den Einsatz dieses Programmes entstehen können * *&---------------------------------------------------------------------* *& http://www.tricktresor.de *&---------------------------------------------------------------------* REPORT zz_alv_merge_cells. * *** Allgemeines **************************************************** INCLUDE . INCLUDE . DATA retc TYPE sy-subrc. . DATA ok_code TYPE sy-ucomm. DATA it_grp TYPE lvc_t_sgrp. DATA it_fil TYPE lvc_t_filt. DATA wa_fil TYPE lvc_s_filt. * **** ALV_GRID **************************************************** TYPES: BEGIN OF t_check_styles, field01(20), field02(20), field03(20), field04(20), field05(20), field06(20), field07(20), field08(20), field09(20), field10(20), field11(20), field12(20). TYPES END OF t_check_styles. DATA it_styles TYPE t_check_styles OCCURS 0. DATA wa_styles TYPE t_check_styles. FIELD-SYMBOLS TYPE t_check_styles. DATA : lt_fieldcatalog TYPE lvc_t_fcat. DATA : ls_fieldcatalog TYPE lvc_t_fcat. DATA : wa_cat TYPE lvc_s_fcat. DATA : fieldname(40). DATA : fieldnr(2) TYPE n. FIELD-SYMBOLS TYPE lvc_s_fcat. DATA lt_iinfo TYPE lvc_t_info. DATA wa_iinfo TYPE lvc_s_info. DATA lt_idata TYPE lvc_t_data. DATA wa_idata TYPE lvc_s_data. DATA it_col_merge TYPE lvc_t_co01. DATA wa_col_merge TYPE lvc_s_co01. DATA: g_container TYPE scrfname VALUE 'CU_CON'. DATA: g_custom_container TYPE REF TO cl_gui_custom_container. DATA g_alv_grid TYPE REF TO zcl_gui_alv_grid_merge. CLASS cl_gui_cfw DEFINITION LOAD. DATA: x_save, "for Parameter I_SAVE gs_variant TYPE disvariant. "for parameter IS_VARIANT DATA gs_layout TYPE lvc_s_layo. " Layout DATA wa_style TYPE lvc_s_styl. * **** ALV_GRID **************************************************** START-OF-SELECTION. CALL SCREEN 0200. END-OF-SELECTION. *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* MODULE status_0200 OUTPUT. ** Status und Titel setzen SET PF-STATUS '0200'. SET TITLEBAR '001'. ** Objekte instanzieren und zuordnen: Grid IF g_custom_container IS INITIAL. CREATE OBJECT g_custom_container EXPORTING container_name = g_container. CREATE OBJECT g_alv_grid EXPORTING i_parent = g_custom_container. gs_layout-stylefname = 'CELL'. gs_layout-no_headers = 'X'. gs_layout-cwidth_opt = ' '. gs_layout-no_toolbar = 'X'. ** Feldkatalog erzeugen REFRESH lt_fieldcatalog. CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING i_internal_tabname = 'IT_STYLES' CHANGING ct_fieldcat = lt_fieldcatalog EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. REFRESH lt_fieldcatalog. REFRESH lt_iinfo. DO 12 TIMES. CLEAR wa_cat. fieldnr = sy-index. wa_cat-col_pos = sy-index. CONCATENATE 'FIELD' fieldnr INTO fieldname. wa_cat-fieldname = fieldname. wa_cat-tabname = '1'. wa_cat-datatype = 'CHAR'. wa_cat-inttype = 'C'. wa_cat-intlen = 20. IF sy-index > 1. wa_cat-outputlen = 6. ELSE. wa_cat-outputlen = 20. ENDIF. wa_cat-reptext = fieldname. wa_cat-scrtext_l = fieldname. wa_cat-scrtext_m = fieldname. wa_cat-scrtext_s = fieldname. wa_cat-scrtext_l = fieldname. APPEND wa_cat TO lt_fieldcatalog. ENDDO. * 1 Zeile CLEAR wa_styles. wa_styles-field01 = 'TRICKTRESOR'. wa_styles-field03 = 'F'. wa_styles-field04 = 'P'. wa_styles-field09 = 'M'. wa_styles-field10 = 'K'. APPEND wa_styles TO it_styles. * 2 Zeile CLEAR wa_styles. wa_styles-field03 = 'HQ'. wa_styles-field04 = 'HC'. wa_styles-field08 = 'HW'. wa_styles-field09 = 'HC'. wa_styles-field10 = 'HC'. wa_styles-field12 = 'HW'. APPEND wa_styles TO it_styles. * 3-Zeile CLEAR wa_styles. wa_styles-field01 = 'Bezeichnung'. wa_styles-field02 = 'Radius'. wa_styles-field03 = 'WPX 12'. wa_styles-field04 = 'WAP 25'. wa_styles-field05 = 'WAP 35'. wa_styles-field06 = 'WTP 35'. wa_styles-field07 = 'WXP 45'. wa_styles-field08 = 'WPM'. wa_styles-field09 = 'WXM 35'. wa_styles-field10 = 'WAK 15'. wa_styles-field11 = 'WAK 25'. wa_styles-field12 = 'WKM'. APPEND wa_styles TO it_styles. * 4..Zeile CLEAR wa_styles. wa_styles-field01 = 'SPMW 060304 T - A 27'. wa_styles-field02 = '0.54'. wa_styles-field03 = icon_led_green. wa_styles-field04 = icon_led_yellow. wa_styles-field05 = icon_led_red. wa_styles-field08 = icon_led_yellow. APPEND wa_styles TO it_styles. CLEAR wa_styles. wa_styles-field01 = 'SPMW 060304 - A 57'. wa_styles-field02 = '0.43'. wa_styles-field03 = icon_led_yellow. wa_styles-field05 = icon_led_red. wa_styles-field08 = icon_led_yellow. wa_styles-field10 = icon_led_yellow. wa_styles-field11 = icon_led_red. wa_styles-field12 = icon_led_yellow. APPEND wa_styles TO it_styles. CLEAR wa_styles. wa_styles-field01 = 'SPMW 060304 - D 51'. wa_styles-field02 = '0.76'. wa_styles-field04 = icon_led_yellow. wa_styles-field05 = icon_led_red. wa_styles-field06 = icon_led_red. wa_styles-field07 = icon_led_red. APPEND wa_styles TO it_styles. CLEAR wa_styles. wa_styles-field01 = 'SPMW 060304 - F 55'. wa_styles-field02 = '0.44'. wa_styles-field03 = icon_led_red. wa_styles-field05 = icon_led_green. wa_styles-field06 = icon_led_yellow. wa_styles-field07 = icon_led_red. wa_styles-field09 = icon_led_yellow. wa_styles-field10 = icon_led_green. wa_styles-field11 = icon_led_yellow. wa_styles-field12 = icon_led_yellow. APPEND wa_styles TO it_styles. * CALL METHOD g_alv_grid->set_table_for_first_display EXPORTING is_variant = gs_variant i_save = x_save is_layout = gs_layout CHANGING it_fieldcatalog = lt_fieldcatalog it_outtab = it_styles. REFRESH it_col_merge. *** DEMO vertikal verbinden wa_col_merge-col_id = 1. wa_col_merge-outputlen = 2. APPEND wa_col_merge TO it_col_merge. CALL METHOD g_alv_grid->z_set_merge_vert EXPORTING row = 1 CHANGING tab_col_merge = it_col_merge. wa_style-style = alv_style_font_bold + alv_style_align_center_center + alv_style_color_key. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING row = 1 col = 1 style = wa_style-style. *** VERTIKAL verbinden CLEAR it_col_merge. wa_col_merge-col_id = 4. wa_col_merge-outputlen = 8. APPEND wa_col_merge TO it_col_merge. wa_col_merge-col_id = 10. wa_col_merge-outputlen = 12. APPEND wa_col_merge TO it_col_merge. CALL METHOD g_alv_grid->z_set_merge_horiz EXPORTING row = 1 CHANGING tab_col_merge = it_col_merge. wa_style-style = alv_style_font_bold. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING row = 1 col = 3 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING row = 1 col = 4 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING row = 1 col = 9 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING row = 1 col = 10 style = wa_style-style. REFRESH it_col_merge. wa_col_merge-col_id = 4. wa_col_merge-outputlen = 7. APPEND wa_col_merge TO it_col_merge. wa_col_merge-col_id = 10. wa_col_merge-outputlen = 2. APPEND wa_col_merge TO it_col_merge. CALL METHOD g_alv_grid->z_set_merge_horiz EXPORTING row = 2 CHANGING tab_col_merge = it_col_merge. wa_style-style = alv_style_color_group + alv_style_align_center_center. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 3 style = wa_style-style. wa_style-style = alv_style_color_heading + alv_style_align_center_center. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 4 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 5 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 6 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 7 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 8 style = wa_style-style. wa_style-style = alv_style_color_total + alv_style_align_center_center. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 9 style = wa_style-style. wa_style-style = alv_style_color_negative + alv_style_align_center_center. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 10 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 11 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 12 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 13 style = wa_style-style. wa_style-style = alv_style_color_positive + alv_style_align_center_center. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 14 style = wa_style-style. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 15 style = wa_style-style. wa_style-style = alv_style_color_int_background + alv_style_align_center_center. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING col = 16 style = wa_style-style. wa_style-style = alv_style_color_positive + alv_style_align_center_center + alv_style_font_italic. CALL METHOD g_alv_grid->z_set_cell_style EXPORTING row = 4 col = 2 style = wa_style-style. g_alv_grid->z_set_fixed_col_row( EXPORTING col = 3 row = 3 ). g_alv_grid->z_display( ). ENDIF. ENDMODULE. "status_0100 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* MODULE user_command_0200 INPUT. * to react on oi_custom_events: cl_gui_cfw=>dispatch( ). CASE ok_code. WHEN 'BACK'. SET SCREEN 0. LEAVE SCREEN. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT