SAP SALV研究

本文详细介绍了SAP SALV(SAP ABAP List Viewer)的使用,包括简单的SALV显示、复杂功能的SALV实现,如全屏模式、弹出框设置、布局调整、单元格样式定制及事件注册等。

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

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 amatnr,bwerks,maktx
INTO CORRESPONDING FIELDS OF TABLE @gt_itab
UP TO 10 ROWS
FROM makt AS a
INNER

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值