OO SALV 详解

目录

前言   

实战

案例 

        全屏显示 

        List显示 

        控制器显示 

前言   

        在Net Weaver2004平台上集合了利用函数和GRID的功能发布的SALV包程序(SALV也称为New ALV)。

        特点:

  • SALV可以像使用函数方式生成ALV那样,不用创建屏幕就可以调用的全屏方式显示的ALV;
  • SALV的GRID报表可以在后台运行,但以前函数方式或OO方式生成的GRID不能;
  • SALV与现有的方法(Function ALV)相比,为了方便以接口的方式提供更整合及细微的功能,但SALV不提供编辑功能(可以通过SALV适配器调用CL_GUI_ALV_GRID修改成编辑模式)

实战

        SALV有以下三种类型的报表:

        三种显示模式
            • 全屏模式
            • 全屏模式—Classic 报表模式(普通List列表)
            • 利用控制器的模式(利用用户自定义控件区域来控制ALV显示大小)         

       CL_SALV_TABL类
              是通过其factory方法,生成SALV实例的,要显示ALV,只需要调用以下两个方法即可:
    factory:静态方法。定义要显示在屏幕上的数据;定义ALV报表样式;调用此方法就会返回CL_SALV_TABLE类型的实例对象;
    display:实例方法。调用此方法屏幕上就显示ALV;

     factory方法参数:
            LIST_DISPLAY:参数决定了列表显示的模式:是以List列表显示,还是Grid网格显示;
            R_CONTAINER:用户自定义控件区域的引用对象,类型为CL_GUI_CONTAINER;
            CONTAINER_NAME:屏幕上用户自定义控件区域(Custom Control);
            R_SALV_TABLE:用来接收工厂产生的实例;
            T_TABLE :输出内表数据;

其中的三个参数与显示模式关系如下:

 显示模式

LIST_DISPLAY

R_CONTAINER

CONTAINER_NAME

全屏显示

FALSE

初始值

初始值

List列表

TRUE

初始值

初始值

控制器显示

FALSE

CL_GUI_CONTAINER对象引用

用户自定义控件区域名称

案例 

        全屏显示 

展示效果:

完整代码: 

DATA gt_spfli TYPE TABLE OF spfli.
DATA go_salv  TYPE REF TO cl_salv_table.

SELECT * FROM spfli INTO TABLE gt_spfli UP TO 10 ROWS.

cl_salv_table=>factory(
 IMPORTING
   r_salv_table = go_salv   "用来接收工厂产生的实例
 CHANGING
   t_table      = gt_spfli ).

go_salv->display( ).        "调用实例方法显示表报

        List显示 

展示效果:

完整代码: 

DATA gt_spfli TYPE TABLE OF spfli.
DATA go_salv  TYPE REF TO cl_salv_table.

SELECT * FROM spfli INTO TABLE gt_spfli UP TO 10 ROWS.

cl_salv_table=>factory(
 EXPORTING
   list_display = abap_true "LIST列表显示
 IMPORTING
   r_salv_table = go_salv   "用来接收工厂产生的实例
 CHANGING
   t_table      = gt_spfli ).

go_salv->display( ).        "调用实例方法显示表报

        控制器显示 

展示效果:

完整代码:

DATA gt_spfli TYPE TABLE OF spfli.
DATA go_salv  TYPE REF TO cl_salv_table.
DATA:go_functions TYPE REF TO cl_salv_functions_list.
DATA:go_container TYPE REF TO cl_gui_custom_container.

START-OF-SELECTION.
  CALL SCREEN 100.

MODULE pbo_0100 OUTPUT.
  SELECT * FROM spfli INTO TABLE gt_spfli UP TO 10 ROWS.

  "判断是否已分配了一个有效引用
  IF go_container IS NOT BOUND.
    "创建容器
    CREATE OBJECT go_container
      EXPORTING
        container_name = 'CONTAINER'. "屏幕上用户自定义控件名
    "创建ALV
    cl_salv_table=>factory(
      EXPORTING
          r_container = go_container
          "container_name = 'CONTAINER'
      IMPORTING
          r_salv_table = go_salv
      CHANGING
          t_table = gt_spfli[] ).
    "设置工具栏
    go_functions = go_salv->get_functions( ).
    go_functions->set_all( abap_true ). "激活所有的ALV内置通用按钮
    "显示
    go_salv->display( ).

  ENDIF.
ENDMODULE.

屏幕绘制界面:

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
ABAP SALVSAP List Viewer)是一个用于在SAP系统中创建和显示报表的工具。要在ABAP SALV报表中添加复选框(checkbox),你可以按照以下步骤进行操作: 1. 定义内表(table):首先,你需要定义一个内表来存储数据和复选框的状态。可以使用`TYPES`关键字定义一个包含所需字段的结构。 2. 填充内表数据:将需要显示的数据填充到内表中。可以使用`APPEND`语句将数据行添加到内表中。 3. 创建SALV对象:使用`CL_SALV_TABLE`类创建一个SALV对象,并将内表作为参数传递给构造方法。 4. 添加复选框列:通过调用`ADD_CHECKBOX_COLUMN`方法,为SALV对象添加一个复选框列。可以指定该列的标题和字段名。 5. 显示报表:使用`DISPLAY`方法显示SALV报表。 下面是一个简单的示例代码: ```abap DATA: lt_data TYPE TABLE OF (your_structure), lo_salv TYPE REF TO cl_salv_table. * 定义内表类型 TYPES: BEGIN OF ty_data, field1 TYPE data_type, field2 TYPE data_type, checkbox TYPE abap_bool, END OF ty_data. * 填充内表数据 APPEND VALUE #( field1 = value1 field2 = value2 ) TO lt_data. * 创建SALV对象 lo_salv = cl_salv_table=>factory( ). * 添加复选框列 lo_salv->add_checkbox_column( title = 'CheckBox' fieldname = 'CHECKBOX' ). * 设置内表数据 lo_salv->set_table_for_first_display( exporting i_structure_name = 'TY_DATA' changing it_outtab = lt_data ). * 显示报表 lo_salv->display( ). ``` 这段代码将在SALV报表中显示一个复选框列,用户可以选择或取消选择复选框。请根据你的实际需求修改字段名称、数据类型和内表数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP_亮亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值