ABAP的两种OOALV实现方法 第二种画屏幕

ABAP的两种OOALV实现方法
先创建一个屏幕0100
在这里插入图片描述
接着创建GUI
在这里插入图片描述
注意最后复制代码进去注意的是这边复制进去那个双引号有问题,要手工改一下这种方法的话不用画那个定制控制

DATA: gcl_docking_container TYPE REF TO cl_gui_docking_container,
gcl_alv_grid TYPE REF TO cl_gui_alv_grid.

DATA:gt_fcat_100 TYPE lvc_t_fcat, "
gs_fcat TYPE lvc_s_fcat.
FIELD-SYMBOLS: <gfs_fcat> TYPE lvc_s_fcat.

DATA:gs_layout_100 TYPE lvc_s_layo.

DATA:gt_exclude_100 TYPE ui_functions, "
gs_exclude TYPE ui_func.

DATA:gs_variant_100 TYPE disvariant. "
DATA:gs_stable TYPE lvc_s_stbl.

FIELD-SYMBOLS: <fs_t001> TYPE ANY TABLE.

CLASS lcl_event_receiver DEFINITION ."FINAL

PUBLIC SECTION.

CLASS-METHODS:

double_click FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column es_row_no.

PRIVATE SECTION.

ENDCLASS. "lcl_event_receiver DEFINITION

CLASS lcl_event_receiver IMPLEMENTATION.
METHOD double_click.

LOOP AT <fs_t001> ASSIGNING FIELD-SYMBOL(<fs_001>).
IF sy-tabix = 1.
ASSIGN COMPONENT ‘BUKRS’ OF STRUCTURE <fs_001> TO FIELD-SYMBOL(<fs_value>).
IF sy-subrc = 0.
<fs_value> = ‘0000’.
ENDIF.
ENDIF.
ENDLOOP.

gcl_alv_grid->refresh_table_display( ).

ENDMETHOD. "double_click
ENDCLASS. "DATA_CHANGED

START-OF-SELECTION.
PERFORM frm_load_data_100.
CALL SCREEN ‘0100’.

MODULE status_0100 OUTPUT.
SET PF-STATUS ‘0100’.

ENDMODULE.

MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN ‘&F03’.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.

MODULE mod_load_data_100 OUTPUT.

ENDMODULE.

FORM frm_load_data_100 .

DATA: lt_001 TYPE STANDARD TABLE OF t001.
DATA: lt_t001 TYPE REF TO data.

gs_variant_100-report = sy-repid.
gs_variant_100-handle = ‘100’.

CREATE DATA lt_t001 TYPE STANDARD TABLE OF t001.

ASSIGN lt_t001->* TO <fs_t001>.

SELECT * FROM t001 INTO TABLE lt_001 UP TO 5 ROWS.

<fs_t001> = lt_001.

IF gcl_docking_container IS INITIAL.
CREATE OBJECT gcl_docking_container
EXPORTING
repid = sy-repid
dynnr = ‘0100’
extension = ‘2000’.

CALL FUNCTION ‘LVC_FIELDCATALOG_MERGE’
EXPORTING
i_structure_name = ‘T001’
CHANGING
ct_fieldcat = gt_fcat_100.
ENDIF.

IF gcl_alv_grid IS INITIAL.

CREATE OBJECT gcl_alv_grid
EXPORTING
i_parent = gcl_docking_container.

CALL METHOD gcl_alv_grid->set_table_for_first_display
EXPORTING
is_layout = gs_layout_100
is_variant = gs_variant_100
i_save = ‘a’
i_default = abap_true
CHANGING
it_fieldcatalog = gt_fcat_100
it_outtab = <fs_t001>.

SET HANDLER lcl_event_receiver=>double_click FOR gcl_alv_grid.

ELSE.
gcl_alv_grid->refresh_table_display( EXPORTING is_stable = gs_stable ).
ENDIF.

ENDFORM.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值