ABAP ALVOO详细教程(三)

本教程介绍ABAP ALV面向对象编程的基础步骤,包括创建屏幕、定义变量及使用ALV容器。通过实例演示如何准备字段目录、布局,以及从数据库获取数据并展示在ALV网格中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ABAP ALVOO详细教程(三)


ALV面向对象编程第一步:创建屏幕
在这里插入图片描述
屏幕号码最好是8000到9000
然会点击逻辑流
在这里插入图片描述
在这里插入图片描述
双击名称
在这里插入图片描述
在这里插入图片描述
选择主程序
代码如下:


REPORT ZPM04.
"alvoo和调用函数字段目录和布局控制参考结构有区别
"OO字段目录LVC_S_FCAT布局控制LVC_S_LAYO打印LVC_S_PRNT排序LVC_S_SORT过滤LVC_S_FILT
"第一步创建SCREEN,在屏幕上创建个定制控制
"点击显示对象列表
"第二步定义变量
DATA :
    wcl_container TYPE REF TO cl_gui_custom_container,"定义ALV容器SE24查看类 参考类TYPE REF TO
    wcl_alv TYPE REF TO cl_gui_alv_grid,"alv网格
    gt_fieldcat TYPE lvc_t_fcat,"存放字段目录
    gs_layout TYPE lvc_s_layo."布局结构

DATA:
      gt_list TYPE TABLE OF sflight WITH HEADER LINE.
CALL SCREEN 8000.
*      wt_sflight TYPE sflight.
*&---------------------------------------------------------------------*
*&      Module  STATUS_8000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_8000 OUTPUT.
*  SET PF-STATUS 'xxxxxxxx'.
*  SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  DISPLAY_ALV  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

MODULE display_alv OUTPUT.
PERFORM display_alv.

ENDMODULE.

FORM display_alv.
  IF wcl_alv IS INITIAL.
   CREATE OBJECT :wcl_container
   EXPORTING
     CONTAINER_NAME = 'CON'.
     create OBJECT : wcl_alv
     EXPORTING
       i_parent = wcl_container.
     "获取字段目录
     PERFORM prepare_filed_catalog CHANGING gt_fieldcat.
     PERFORM prepare_layout CHANGING gs_layout ."获取布局
     "获取数据
     PERFORM get_data TABLES gt_list.

CALL METHOD wcl_alv->set_table_for_first_display

  EXPORTING
*    i_buffer_active               =
*    i_bypassing_buffer            =
*    i_consistency_check           =
*    i_structure_name              =
*    is_variant                    =
*    i_save                        =
*    i_default                     = 'X'
    is_layout                     = gs_layout
*    is_print                      =
*    it_special_groups             =
*    it_toolbar_excluding          =
*    it_hyperlink                  =
*    it_alv_graphics               =
*    it_except_qinfo               =
*    ir_salv_adapter               =
  CHANGING
    it_outtab                     = gt_list[]
    it_fieldcatalog               = gt_fieldcat
*    it_sort                       =
*    it_filter                     =
  EXCEPTIONS
    invalid_parameter_combination = 1
    program_error                 = 2
    too_many_lines                = 3
    others                        = 4
        .
  ELSE.
   CALL METHOD wcl_alv->refresh_table_display
*     EXPORTING
*       is_stable      =
*       i_soft_refresh =
     EXCEPTIONS
       finished       = 1
       others         = 2
           .
   IF sy-subrc <> 0.
*    Implement suitable error handling here
   ENDIF.

IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

  ENDIF.

  ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PREPARE_FILED_CATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GT_FIELDCAT  text
*----------------------------------------------------------------------*
FORM prepare_filed_catalog  CHANGING p_gt_fieldcat.
DATA:ls_fcat TYPE lvc_t_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
 EXPORTING
*   I_BUFFER_ACTIVE              =
   I_STRUCTURE_NAME             = 'SFLIGHT'
*   I_CLIENT_NEVER_DISPLAY       = 'X'
*   I_BYPASSING_BUFFER           =
*   I_INTERNAL_TABNAME           =
  CHANGING
    ct_fieldcat                  = p_gt_fieldcat
 EXCEPTIONS
   INCONSISTENT_INTERFACE       = 1
   PROGRAM_ERROR                = 2
   OTHERS                       = 3
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.


ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PREPARE_LAYOUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_GS_LAYOUT  text
*----------------------------------------------------------------------*
FORM prepare_layout  CHANGING p_gs_layout TYPE lvc_s_layo.

p_gs_layout-zebra = 'X'.
p_gs_layout-GRID_TITLE = '航班信息'.
p_gs_layout-smalltitle = 'X'.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_GT_LIST  text
*----------------------------------------------------------------------*
FORM get_data  TABLES   rt_outtab LIKE gt_list[].  "插入正确名称 <...>.

SELECT * FROM sflight into CORRESPONDING FIELDS OF TABLE rt_outtab UP TO 30 ROWS.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_8000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_8000 INPUT.

ENDMODULE.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值