最简单function alv 模板

能做出来就行,无论什么办法

TYPE-POOLS icon.
TYPES:BEGIN OF ty_data,
        kk TYPE c LENGTH 4,
      END OF ty_data.

***  定义内表
DATA:gt_data TYPE TABLE OF ty_data,
     gs_data TYPE ty_data.
***ALV相关定义
***FILEDCAT定义
DATA:gt_fcat TYPE lvc_t_fcat,
     gs_fcat LIKE LINE OF gt_fcat.
***布局定义
DATA:gs_layout TYPE lvc_s_layo.
***  选择屏幕定义
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
PARAMETERS:p_pwerk TYPE afpo-pwerk.
SELECTION-SCREEN END OF BLOCK bk1.

START-OF-SELECTION.
  PERFORM frm_getdata. "取数
  PERFORM frm_dealdata."处理数据
  PERFORM frm_layout.   "布局设置
  PERFORM frm_fieldcat.  "FIEDLCAT 填充输出的字段
  PERFORM frm_dispaly.  "报表展示

*&---------------------------------------------------------------------*
*& Form FRM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_getdata ..

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DEALDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_dealdata .

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_LAYOUT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_layout .
  gs_layout-zebra = 'X'.
  gs_layout-box_fname = 'BOX'."这个可以选中那一行,相当于加了一个字段"
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_FIELDCAT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_fieldcat .

  CLEAR gs_fcat.
  gs_fcat-fieldname = 'MAKTX'.
  gs_fcat-coltext = '物料描述'.
  APPEND gs_fcat TO gt_fcat.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_DISPALY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_dispaly .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid
      i_callback_pf_status_set = 'FRM_SET_PF_STATUS'
      i_callback_user_command  = 'FRM_USER_COMMAND'
      is_layout_lvc            = gs_layout
      it_fieldcat_lvc          = gt_fcat
    TABLES
      t_outtab                 = gt_data.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.

ENDFORM.
FORM frm_set_pf_status USING rt_extab TYPE slis_t_extab..
  SET PF-STATUS 'STANDARD' EXCLUDING  rt_extab.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_user_command USING  r_ucomm LIKE sy-ucomm
      rs_selfield TYPE slis_selfield.
  DATA:lr_grid TYPE REF TO cl_gui_alv_grid.
  DATA:lv_msg TYPE string.
  DATA:lv_index TYPE string.
  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = lr_grid.
  CALL METHOD lr_grid->check_changed_data.
  rs_selfield-refresh = 'X'.

  CASE r_ucomm.
    WHEN '&ZCREATE'.
      MESSAGE '测试' TYPE 'I'.
    WHEN OTHERS.
  ENDCASE.

* ***刷新屏幕
  rs_selfield-refresh = 'X'.    " REFESH ALV
*  CALL METHOD LR_GRID->REFRESH_TABLE_DISPLAY.
ENDFORM.                    "FRM_USER_COMMAND

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值