ABAP ALV详细教程(二)

ABAP ALV详细教程(二)

ALV事件

第一:定义事件
第二:写子例程

*第一步申明变量
TYPE-POOLS:slis.
DATA : lt_fieldcat TYPE slis_t_fieldcat_alv,
       wt_fieldcat TYPE slis_fieldcat_alv,
       ls_layout   TYPE slis_layout_alv,
       lt_event    TYPE slis_t_event, "定义事件内表
       ls_event    TYPE slis_alv_event. "定义事件工作区

lt_event TYPE slis_t_event, "定义事件内表
ls_event TYPE slis_alv_event. "定义事件工作区
变量申明

*定义内表
TYPES:BEGIN OF lt_xs,
        vbeln TYPE vbak-vbeln,
        matnr TYPE vbap-matnr,
      END OF lt_xs.
DATA :gw_xs TYPE lt_xs,
      gt_xs TYPE TABLE OF lt_xs.
*************读取数据**************
SELECT vbak~vbeln matnr FROM vbak
  LEFT JOIN vbap
  ON vbak~vbeln = vbap~vbeln
  INTO TABLE gt_xs.
***************ALV格式控制******************
ls_layout-zebra = 'X'.
ls_layout-detail_popup = 'X'.
ls_layout-detail_titlebar = '详细信息'.
ls_layout-f2code = '&ETA'.
ls_layout-colwidth_optimize = 'X'.

wt_fieldcat-fieldname = 'VBELN'.
wt_fieldcat-col_pos  = '1'.
wt_fieldcat-key = 'X'.
wt_fieldcat-datatype = 'CHAR'.
wt_fieldcat-outputlen = '10'.
wt_fieldcat-seltext_m = '销售凭证'.
APPEND wt_fieldcat TO lt_fieldcat.

wt_fieldcat-fieldname = 'MATNR'.
wt_fieldcat-col_pos  = '2'.
wt_fieldcat-key = 'X'.
wt_fieldcat-datatype = 'CHAR'.
wt_fieldcat-outputlen = '18'.
wt_fieldcat-seltext_m = '物料号'.
APPEND wt_fieldcat TO lt_fieldcat.

定义事件:

************定义事件 REUSE_ALV_EVENTS_GET
ls_event-name = 'USER_COMMAND'."用户响应事件
ls_event-form = 'FORM_USER_COMMAND'."定义子例程最好和name值一样前面加FORM
APPEND ls_event TO lt_event.
clear :ls_event.
ls_event-name = 'TOP_OF_PAGE'."显示标题
ls_event-form = 'FORM_TOP_OF_PAGE'.
APPEND ls_event TO lt_event.
clear :ls_event.
ls_event-name = 'PF_STATUS_SET'."设置GUI状态栏
ls_event-form = 'FORM_PF_STATUS_SET'.
APPEND ls_event TO lt_event.
clear :ls_event.

ALV显示:

********************显示ALV
DATA:pgm TYPE sy-repid.
pgm = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
   I_CALLBACK_PROGRAM                = pgm
*   I_CALLBACK_PF_STATUS_SET          = ' '
*   I_CALLBACK_USER_COMMAND           = ' '
*   I_CALLBACK_TOP_OF_PAGE            = ''
*   I_CALLBACK_HTML_TOP_OF_PAGE       = ''
*   I_CALLBACK_HTML_END_OF_LIST       = ' '
*   I_STRUCTURE_NAME                  =
*   I_BACKGROUND_ID                   = ' '
*   I_GRID_TITLE  =
*   I_GRID_SETTINGS                   =
    is_layout     = ls_layout
    it_fieldcat   = lt_fieldcat
*   IT_EXCLUDING  =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT       =
*   IT_FILTER     =
*   IS_SEL_HIDE   =
*   I_DEFAULT     = 'X'
*   I_SAVE        = ' '
*   IS_VARIANT    =
    it_events     = lt_event
*   IT_EVENT_EXIT =
*   IS_PRINT      =
*   IS_REPREP_ID  =
*   I_SCREEN_START_COLUMN             = 0
*   I_SCREEN_START_LINE               = 0
*   I_SCREEN_END_COLUMN               = 0
*   I_SCREEN_END_LINE                 = 0
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK  =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
*   IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    t_outtab      = gt_xs
  EXCEPTIONS
    program_error = 1
    OTHERS        = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

子例程

**************form子例程定义****************
FORM form_user_command  USING r_ucomm     LIKE sy-ucomm
                                     rs_selfield TYPE slis_selfield.

  CASE r_ucomm  .
    WHEN  'ADD'.
      MESSAGE '你点击了添加按钮' TYPE 'I'.
    WHEN 'DEL'.
    MESSAGE '你点击了删除按钮' TYPE 'I'.
  ENDCASE.
ENDFORM.

FORM form_top_of_page.
  DATA:lt_commentary TYPE slis_t_listheader,
       wt_commentary TYPE  slis_listheader.

  wt_commentary-typ = 'H'.
  wt_commentary-info = '销售凭证清单'.
  APPEND wt_commentary TO lt_commentary.
  wt_commentary-typ = 'S'.
  wt_commentary-info = '销售凭证清单'.
 APPEND wt_commentary TO lt_commentary.
  wt_commentary-typ = 'A'.
  wt_commentary-info = '销售凭证清单'.
  APPEND wt_commentary TO lt_commentary.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = lt_commentary
     i_logo             = 'ZXY'           "图片tcodeOAER
*     I_END_OF_LIST_GRID =
*     I_ALV_FORM         =
    .


ENDFORM.

FORM form_pf_status_set USING rt_extab TYPE slis_t_extab.
 SET PF-STATUS 'STANDARD_FULLSCREEN'.
ENDFORM.

在这里插入图片描述
图片上传TCODE–OAER
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值