SAP SALV研究

1.SALV

SALV用的是类cl_salv_table下的相关方法,一般用于对话框或者功能要求比较简单的数据显示,比如明细数据显示,不能单元格编辑或者某行某列编辑,可以实现全部数据编辑(实用性不强),如要实现编辑可参考这篇博文 https://mp.weixin.qq.com/s?__biz=MzU1MDAzMDY3MQ==&mid=2247486617&idx=1&sn=b5680cdc73546d9648bec27170666106&scene=21#wechat_redirect,用的比较多的还是FUNCTION ALV或者OOALV。

2.简单SALV

本例展示最简单的SALV,只显示ALV,不注册事件。
测试代码如下:

REPORT zys096 .

DATA: gt_spfli TYPE TABLE OF spfli.
DATA: gr_table TYPE REF TO cl_salv_table.
DATA: gr_columns TYPE REF TO cl_salv_columns.

START-OF-SELECTION.

SELECT * INTO TABLE gt_spfli FROM spfli.

cl_salv_table=>factory( IMPORTING r_salv_table = gr_table CHANGING t_table = gt_spfli ).

gr_columns = gr_table->get_columns( ).
gr_columns->set_optimize( abap_true ).

gr_table->display( ).

效果展示如下:
在这里插入图片描述

3.较复杂SALV

本例中展示复杂功能的SALV,注册事件,包含功能如下:
1>全屏模式:显示状态STATUS及加按钮,注意在程序中建立status。
2>弹出框模式:设定弹出框位置及大小,没有set_screen_popup则为全屏显示
3>设定LAYOUT,比如布局
4>设置ALV的字段属性,比如是否显示,标题文本,ICON(图标)
5>设置单元格的样式,比如按钮,热键
6>注册事件包含双击,单击,按钮
测试代码如下:
REPORT zys097 .

TABLES mara.

DATA:go_table TYPE REF TO cl_salv_table.

DATA:BEGIN OF gs_itab,
sel,
icon TYPE char20,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
werks TYPE werks_d,
count TYPE i,
type TYPE c,
msg TYPE string,
button TYPE char20.
DATA: celltype TYPE salv_t_int4_column, "单元格格式,比如把单元格设置成热键,按钮
END OF gs_itab,
gt_itab LIKE TABLE OF gs_itab.

SELECT-OPTIONS:s_matnr FOR mara-matnr.

START-OF-SELECTION.
PERFORM frm_get_data.

END-OF-SELECTION.
PERFORM frm_out_data.
&---------------------------------------------------------------------
*& Form FRM_GET_DATA
&---------------------------------------------------------------------
FORM frm_get_data.
DATA: lt_celltype TYPE salv_t_int4_column.
DATA: ls_celltype LIKE LINE OF lt_celltype.
DATA: lv_tabix TYPE i.

SELECT a

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值