ABAP--通过自定义类使用ALV(相应事件)的代码

本文介绍如何在 ABAP 中使用 ALV Grid 控件实现数据展示及交互功能,包括数据选择、表格初始化、列设置及事件处理等关键步骤。

Class Definition

*----------------------------------------------------------------------*
* CLASS lcl_alv DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_alv DEFINITION.
PUBLIC SECTION.

METHODS select_alv IMPORTING amount TYPE i.

METHODS display_alv.

METHODS on_link_click
FOR EVENT link_click OF cl_salv_events_table
IMPORTING row column.

PROTECTED SECTION.

DATA t_alv TYPE STANDARD TABLE OF alv_tab.

DATA: o_table TYPE REF TO cl_salv_table,
o_columns TYPE REF TO cl_salv_columns_table,
o_column TYPE REF TO cl_salv_column_table,
o_events TYPE REF TO cl_salv_events_table.

ENDCLASS. "lcl_alv DEFINITION

Class Implementation

*----------------------------------------------------------------------*
* CLASS lcl_alv IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_alv IMPLEMENTATION.

METHOD select_alv.

SELECT *
FROM alv_tab
INTO TABLE t_alv
UP TO amount ROWS.

ENDMETHOD. "SELECT_ALV

METHOD display_alv.

TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = o_table
CHANGING
t_table = t_alv ).
CATCH cx_salv_msg. "#EC NO_HANDLER
ENDTRY.

o_columns = o_table->get_columns( ).
o_columns->set_optimize( abap_true ).

TRY.
o_column ?= o_columns->get_column( 'CARRID' ).
o_column->set_cell_type( if_salv_c_cell_type=>hotspot ).
CATCH cx_salv_not_found.
ENDTRY.

o_events = o_table->get_event( ).

SET HANDLER me->on_link_click FOR o_events.

o_table->display( ).

ENDMETHOD. "display_alv

METHOD on_link_click.

DATA: l_row_string TYPE string,
l_col_string TYPE string,
l_row TYPE char128.

MESSAGE i000(0k) WITH 'You Clicked on Line'
row
'Of Column'
column.

ENDMETHOD. "on_single_click
ENDCLASS. "lcl_alv IMPLEMENTATION

Defining Objects

DATA o_alv TYPE REF TO lcl_alv.Instance Creation

START-OF-SELECTION.

CREATE OBJECT o_alv.

Calling Methods

o_alv->select_alv( 30 ).
o_alv->display_alv( ).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值