OO系列之屏幕分割

本文介绍了如何使用Object-Oriented(OO)编程在SAP中实现屏幕分割,主要涉及CL_GUI_CUSTOM_CONTAINER和CL_GUI_SPLITTER_CONTAINER的使用,以及ALV网格的创建和布局设置。通过创建和注册事件处理,实现了屏幕的动态显示和交互功能。
摘要由CSDN通过智能技术生成

在现在项目上alv很多都是用oo做的,其中最常见的就是用oo做成了屏幕分割,今天先略微的概览一遍,等日后修炼加深,再作详细阐述~~

首先我们的目的是实现这种样式的

 这就屏幕分割,代码如下

DATA: g_container     TYPE REF TO cl_gui_custom_container,
      g_splitter      TYPE REF TO cl_gui_splitter_container,
      g_container_top TYPE REF TO cl_gui_container,
      g_container_bom TYPE REF TO cl_gui_container.
DATA: g_grid_top TYPE REF TO cl_gui_alv_grid,
      g_grid_bom TYPE REF TO cl_gui_alv_grid.

  IF g_container IS INITIAL.
*   创建container对象
    CREATE OBJECT g_container
      EXPORTING
        container_name = 'CONTAINER'.

*   创建splitter对象
    CREATE OBJECT g_splitter
      EXPORTING
        parent  = g_container
        rows    = 2
        columns = 1.

    CALL METHOD g_splitter->get_container
      EXPORTING
        row       = 1
        column    = 1
      RECEIVING
        container = g_container_top.

    CALL METHOD g_splitter->get_container
      EXPORTING
        row       = 2
        column    = 1
      RECEIVING
        container = g_container_bom.

  ENDIF.

 IF g_grid_top IS INITIAL.
*   创建alv对象
    CREATE OBJECT g_grid_top
      EXPORTING
        i_parent = g_container_top.

*   设置layout

    PERFORM frm_alv_layout_top.

*   设置fieldcat内容

    REFRESH: gt_fcat_top[].
    PERFORM frm_alv_fieldcat CHANGING gt_fcat_top[].

*   设置variant
*   PS:初始布局没有效果因为开始没有数据导致

    CLEAR: gs_variant_top.
    gs_variant_top-report = sy-repid.
    gs_variant_top-handle = '0001'.

*   设置按钮
    REFRESH: gt_exclude_funcodes.
    PERFORM frm_alv_funcodes CHANGING gt_exclude_funcodes.

*显示ALV数据
    CALL METHOD g_grid_top->set_table_for_first_display
      EXPORTING
        is_layout            = gs_layout_top
        it_toolbar_excluding = gt_exclude_funcodes
        i_save               = 'A'  "space:不保存 U:自定义布局 X:全局布局 A:自定义和全局
        is_variant           = gs_variant_top "gs_variant
      CHANGING
        it_fieldcatalog      = gt_fcat_top[]
        it_

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值