ABAP常用FORM

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
View Code
原文地址:https://www.cnblogs.com/chaguoguo/p/14006525.html