OOALV基础操作

这篇博客介绍了如何在SAP中进行OOALV(Object-Oriented ALV)的基础操作,包括调用自建屏幕,处理PBO/PAI事件,隐藏标准按钮,设置布局以及字段属性,并详细讲解了ALV的显示和点击事件的处理方法。
摘要由CSDN通过智能技术生成

定义类

DATA: fieldcat TYPE lvc_t_fcat,
      grid TYPE REF TO cl_gui_alv_grid,"alv 控件名
      g_container TYPE scrfname VALUE 'ZCONTRL1',
      g_custom_container TYPE REF TO cl_gui_custom_container,"容器对象名
      layout TYPE lvc_s_layo,
      gs_toolbar TYPE stb_button, "按钮.
      ui_functions TYPE ui_functions. "隐藏按钮的内表

*----------------------------------------------------------------------*
*       CLASS alv_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS alv_event_receiver DEFINITION.                  "声明类成员可见性
  PUBLIC SECTION.                                      "定义相关类成员可以被程序中的所有对象调用
    CLASS-METHODS:                                     "静态方法
      handle_toolbar                                   "初始化工具栏对象事件,如增加按钮并设定其属性
        FOR EVENT toolbar OF cl_gui_alv_grid
          IMPORTING e_object e_interactive,

       handle_menu_button                              "用于在下拉菜单中增加选项
         FOR EVENT menu_button OF cl_gui_alv_grid
          IMPORTING e_object e_ucomm,

       handle_user_command                             "工具栏中的按钮的单击事件
          FOR EVENT user_command OF cl_gui_alv_grid
            IMPORTING e_ucomm,

       handle_hotspot_click
          FOR EVENT hotspot_click OF cl_gui_alv_grid    "屏幕中的单击事件,可以具体到某行某列,需要设置热点
            IMPORTING  e_row_id e_column_id es_row_no,

       handle_double_click
          FOR EVENT double_click OF cl_gui_alv_grid     "屏幕中的双击事件,可以具体到某行某列,即使设置热点也必须双击
            IMPORTING e_row e_column es_row_no,

"数据改变事件
    data_changed FOR EVENT data_changed OF cl_gui_alv_grid
      IMPORTING er_data_changed.
ENDCLASS.                    "alv_event_receiver DEFINITION
*&---------------------------------------------------------------------*
*&       Class (Implementation)  alv_event_receiver
*&---------------------------------------------------------------------*
*        Text
*----------------------------------------------------------------------*
CLASS alv_event_receiver IMPLEMENTATION.  "实现类方法
  METHOD data_changed."有变化的行项目会进到这个loop
    DATA: ls_modi TYPE lvc_s_modi.
    DATA: l_lifnr TYPE lfa1-lifnr.
    LOOP AT er_data_changed->mt_mod_cells INTO ls_modi.
      l_lifnr = ls_modi-value.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = l_lifnr
        IMPORTING
          output = l_lifnr.
      READ TABLE gt_itab1 INTO gs_itab1 INDEX ls_modi-row_id.
      gs_itab1-lifnr = l_lifnr.
      SELECT SINGLE name1 INTO gs_itab1-name1 FROM lfa1 WHERE lifnr = l_lifnr.
      MODIFY gt_itab1 FROM gs_itab1 INDEX ls_modi-row_id.
      CLEAR: gs_itab1, l_lifnr.

      DATA: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值