DATA: gs_layout TYPE lvc_s_layo,
gt_fieldcat TYPE lvc_t_fcat.
*&---------------------------------------------------------------------* FORM f_display_data . PERFORM f_set_layout. PERFORM f_set_fieldcat. PERFORM f_alv_display TABLES gt_output. ENDFORM. FORM f_set_layout. CLEAR: gs_layout. gs_layout-box_fname = 'SLBOX'. gs_layout-zebra = 'X'. gs_layout-cwidth_opt = 'X'. * gs_layout-ctab_fname = 'CELLCOLOR'. ENDFORM. FORM f_set_fieldcat. CLEAR: gt_fieldcat[]. DATA: ls_fieldcat TYPE lvc_s_fcat. DEFINE set_fieldcat. CLEAR: ls_fieldcat. ls_fieldcat-fieldname = &1. ls_fieldcat-ref_field = &2. ls_fieldcat-ref_table = &3. ls_fieldcat-convexit = &4. ls_fieldcat-do_sum = &5. ls_fieldcat-seltext = &6. ls_fieldcat-scrtext_l = &6. ls_fieldcat-scrtext_m = &6. ls_fieldcat-scrtext_s = &6. ls_fieldcat-coltext = &6. APPEND ls_fieldcat TO gt_fieldcat. END-OF-DEFINITION. *显示内容 set_fieldcat 'RBUKRS' 'RBUKRS' 'ACDOCA' '' '' '公司代码'. set_fieldcat 'GJAHR' 'GJAHR' 'ACDOCA' '' '' '会计年度'. set_fieldcat 'BUDAT' 'BUDAT' 'ACDOCA' '' '' '过账日期'. ENDFORM. FORM f_alv_display TABLES it_table. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid * i_callback_pf_status_set = 'F_SET_PF_STATUS' i_callback_user_command = 'F_USER_COMMAND' is_layout_lvc = gs_layout it_fieldcat_lvc = gt_fieldcat i_save = 'U' TABLES t_outtab = it_table EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. ENDIF. ENDFORM. *-----------------------------------------------------------------------* * *-----------------------------------------------------------------------* FORM f_set_pf_status USING rt_extab TYPE slis_t_extab. * SET PF-STATUS 'STD'. ENDFORM. *-----------------------------------------------------------------------* * *-----------------------------------------------------------------------* FORM f_user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. PERFORM f_check_change_data. CASE r_ucomm. WHEN 'LIST'. WHEN '&IC1'."双击事件 READ TABLE gt_output INTO gs_output INDEX rs_selfield-tabindex. IF sy-subrc EQ 0. SET PARAMETER ID 'BLN' FIELD gs_output-BELNR. SET PARAMETER ID 'BUK' FIELD gs_output-RBUKRS. SET PARAMETER ID 'GJR' FIELD gs_output-GJAHR. CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. ENDIF. ENDCASE. PERFORM f_refresh_alv. ENDFORM. *-----------------------------------------------------------------------* * *-----------------------------------------------------------------------* FORM f_check_change_data. DATA: lo_grid TYPE REF TO cl_gui_alv_grid. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lo_grid. lo_grid->check_changed_data( ). ENDFORM. *-----------------------------------------------------------------------* * *-----------------------------------------------------------------------* FORM f_refresh_alv. DATA: lo_grid TYPE REF TO cl_gui_alv_grid, ls_is_stable TYPE lvc_s_stbl. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lo_grid. ls_is_stable-col = 'X'. ls_is_stable-row = 'X'. lo_grid->refresh_table_display( EXPORTING is_stable = ls_is_stable EXCEPTIONS finished = 1 OTHERS = 2 ). IF sy-subrc <> 0. ENDIF. ENDFORM. *&---------------------------------------------------------------------* * 填充单元格颜色数据 *----------------------------------------------------------------------* FORM fill_cellcolor USING num TYPE i CHANGING p_cellcolor TYPE lvc_t_scol. DATA wa_cellcolor TYPE lvc_s_scol . " 单元格颜色结构 DEFINE set_color. wa_cellcolor-fname = &1. wa_cellcolor-color-col = num. wa_cellcolor-color-int = '1'. wa_cellcolor-color-inv = '0'. APPEND wa_cellcolor TO p_cellcolor. END-OF-DEFINITION. set_color 'MESSA'. ENDFORM. " fill_cellcolor