alv

***INCLUDE ZREUSEALV . *&------------------------------------------------------------------* *& PROGRAM VARIANS: *&------------------------------------------------------------------* DATA: w_col_pos TYPE i. *&------------------------------------------------------------------* *& TABLES: *&------------------------------------------------------------------* TYPE-POOLS: slis. DATA: it_fieldcat TYPE slis_t_fieldcat_alv, ws_fieldgroups_tab TYPE slis_t_sp_group_alv, ws_layout TYPE slis_layout_alv, ws_sortfields_tab TYPE slis_t_sortinfo_alv, it_events TYPE slis_t_event. DATA: ws_fieldcat LIKE LINE OF it_fieldcat, ws_events LIKE LINE OF it_events. *---------------------------------------------------------------------* * FORM print_report_alv * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* FORM print_report_alv TABLES it_comp. PERFORM fill_eventcat_alv. PERFORM fill_layout_alv. PERFORM start_list_viewer TABLES it_comp. ENDFORM. " PRINT_REPORT_ALV *---------------------------------------------------------------------* * FORM SUB_FILL_FIELDCAT_ALV * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> TABNAME * * --> FIELDNAME * *---------------------------------------------------------------------* FORM sub_fill_fieldcat_alv USING tabname ref_tabname fieldname fieldlabel. w_col_pos = w_col_pos + 1. CLEAR ws_fieldcat. IF ref_tabname <> space. ws_fieldcat-ref_tabname = ref_tabname. ENDIF. ws_fieldcat-fieldname = fieldname. IF fieldlabel <> space. ws_fieldcat-seltext_l = fieldlabel. ws_fieldcat-seltext_m = fieldlabel. ws_fieldcat-seltext_s = fieldlabel. ws_fieldcat-ddictxt = 'M'. ws_fieldcat-reptext_ddic = fieldlabel. ENDIF. ws_fieldcat-key = space. ws_fieldcat-do_sum = space. ws_fieldcat-col_pos = w_col_pos. ws_fieldcat-no_out = space. ws_fieldcat-hotspot = space. ws_fieldcat-tabname = tabname. APPEND ws_fieldcat TO it_fieldcat. ENDFORM. "sub_fill_fieldcat_alv *---------------------------------------------------------------------* * FORM SUB_FILL_FIELDCAT_ALV * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> TABNAME * * --> FIELDNAME * *---------------------------------------------------------------------* FORM sub_fill_fieldcat_alv1 USING tabname ref_tabname ref_fieldname fieldname fieldlabel. w_col_pos = w_col_pos + 1. CLEAR ws_fieldcat. IF ref_tabname <> space. ws_fieldcat-ref_tabname = ref_tabname. ENDIF. IF ref_fieldname <> space. ws_fieldcat-ref_fieldname = ref_fieldname. ENDIF. ws_fieldcat-fieldname = fieldname. IF fieldlabel <> space. ws_fieldcat-seltext_l = fieldlabel. ws_fieldcat-seltext_m = fieldlabel. ws_fieldcat-seltext_s = fieldlabel. ws_fieldcat-reptext_ddic = fieldlabel. ENDIF. ws_fieldcat-key = space. ws_fieldcat-do_sum = space. ws_fieldcat-col_pos = w_col_pos. ws_fieldcat-no_out = space. ws_fieldcat-hotspot = space. ws_fieldcat-tabname = tabname. APPEND ws_fieldcat TO it_fieldcat. ENDFORM. "sub_fill_fieldcat_alv1 *---------------------------------------------------------------------* * FORM SUB_FILL_FIELDCAT_ALV * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* * --> TABNAME * * --> FIELDNAME * *---------------------------------------------------------------------* FORM sub_fill_fieldcat_alv2 USING tabname ref_tabname ref_fieldname fieldname fieldlabel p_decimal. w_col_pos = w_col_pos + 1. CLEAR ws_fieldcat. IF ref_tabname <> space. ws_fieldcat-ref_tabname = ref_tabname. ENDIF. IF ref_fieldname <> space. ws_fieldcat-ref_fieldname = ref_fieldname. ENDIF. ws_fieldcat-fieldname = fieldname. IF fieldlabel <> space. ws_fieldcat-seltext_l = fieldlabel. ws_fieldcat-seltext_m = fieldlabel. ws_fieldcat-seltext_s = fieldlabel. ws_fieldcat-reptext_ddic = fieldlabel. ENDIF. ws_fieldcat-key = space. ws_fieldcat-do_sum = space. ws_fieldcat-col_pos = w_col_pos. ws_fieldcat-no_out = space. ws_fieldcat-hotspot = space. ws_fieldcat-tabname = tabname. ws_fieldcat-decimals_out = p_decimal. APPEND ws_fieldcat TO it_fieldcat. ENDFORM. "sub_fill_fieldcat_alv2 *---------------------------------------------------------------------* * FORM fill_eventcat_alv * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* FORM fill_eventcat_alv. REFRESH it_events. CLEAR ws_events. ws_events-name = 'TOP_OF_PAGE'. ws_events-form = 'TOP_OF_PAGE'. APPEND ws_events TO it_events. ENDFORM. "fill_eventcat_alv *---------------------------------------------------------------------* * FORM fill_layout_alv * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* FORM fill_layout_alv. CLEAR ws_layout. ws_layout-colwidth_optimize = 'X'. ENDFORM. "fill_layout_alv *---------------------------------------------------------------------* * FORM START_LIST_VIEWER * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* FORM start_list_viewer TABLES it_comp. DATA: lv_pgm LIKE sy-repid. lv_pgm = sy-repid. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' * CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = lv_pgm * I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET' i_callback_user_command = 'PROCESS_USER_COMMAND' is_layout = ws_layout it_fieldcat = it_fieldcat i_default = 'X' i_save = 'A' it_events = it_events TABLES t_outtab = it_comp EXCEPTIONS program_error = 1 OTHERS = 2 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. REFRESH it_fieldcat . ENDFORM. "start_list_viewer *&---------------------------------------------------------------------* *& Form print_report_alv1 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_IT_MARC text *----------------------------------------------------------------------* FORM print_report_alv1 TABLES it_comp. PERFORM fill_eventcat_alv. PERFORM fill_layout_alv. PERFORM start_list_viewer1 TABLES it_comp. ENDFORM. " print_report_alv1 *---------------------------------------------------------------------* * FORM START_LIST_VIEWER1 * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------* FORM start_list_viewer1 TABLES it_comp. DATA: lv_pgm LIKE sy-repid. DATA: grid_settings TYPE lvc_s_glay. lv_pgm = sy-repid. grid_settings-coll_top_p = 'X'. * CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = lv_pgm * I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET' * i_callback_user_command = 'PROCESS_USER_COMMAND' i_grid_settings = grid_settings is_layout = ws_layout it_fieldcat = it_fieldcat i_default = 'X' i_save = 'A' it_events = it_events TABLES t_outtab = it_comp EXCEPTIONS program_error = 1 OTHERS = 2 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDFORM. "start_list_viewer1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值