SAP Function ALV 01(样式、排序、筛选、事件)

ALV全称SAP List View,是SAP提供的一个强大的数据报表显示工具。
相比write输出:提供了更优质的与用户交互的功能。
实现方式:
- 调用标准函数
- 优化接口:用户可以实现对字段的排序、筛选及统计等功能。
显示方式:
-List:类似于write语句输出的表单形式
-Grid: 每个输出字段提供按钮,用户可以自行设定,操作更为灵活

运用Function ALV之前需要了解的大概内容
1.类型池:SLIS(类型池其实是特殊的程序)
2.Fieldcat TYPE slis_t_fieldcat_alv(每列的设置)
-列格式设置(表单)
-字段名称,列是否可修改,列宽度等
3.Layout TYPE slis_layout_alv(整个的设置)
- 全局格式设置(结构)
- 整表字段是否可修改,是否以斑马线输出,是否显示选择按钮字段等
4.函数:REUSE_ALV_FIELDCATALOG_MERGE
-根据内表结构返回FIELDCAT字段结构信息
5.函数:REUSE_ALV_GRID_DISPLAY / REUSE_ALV_LIST_DISPLAY
-使用GRID/LIST模式输出ALV报表

在程序中常用的架构:
START-OF-SELECTION
-数据表单数据选取(取数逻辑)
注意:为空就不走下面程序了。
END-OF-SELECTION
-对FIELDCAT赋值:设置每列格式
-对LAYOUT赋值:设置表单格式(可选)
-对SORT表等赋值:设置排序内容等(可选)
-给EVENT表等赋值:增加程序交互事件(可选)
-调用函数,输出ALV

创建Fieldcat
先声明:
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
这里写图片描述

eg:在合计的时候,可以根据单位的不同分类合计:
GS_FIELDCAT-QFIELDNAME = ‘单位字段名’.
GS_FIELDCAT-CFIELDNAME = ‘货币单位名’。

创建LAYOUT
先声明:
DATA GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
这里写图片描述
-BOX_FIELDNAME:
1.在内表中增加一列,字段名为BOX。
2.在layout赋值之后,表单显示时为可选择按钮。

-DETAIL_XX:标准按钮详细信息点击时触发的详细清单相应的的设置。
“详细清单属性
GS_LAYOUT-DETAIL_INITIAL_LINES = ‘X’. “是否显示值为空的字段
GS_LAYOUT-DETAIL_TITLEBAR = ‘Detail Information’ .”对话框标题

创建SORT表:进行排序
先声明:
DATA:GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_SORT TYPE SLIS_SORTINFO_ALV.
SORT表为一个内表,将需要排序的字段信息增加到sort表中,在ALV输出按照顺序排序输出。
sort代码片段

创建FILTER表:进行筛选
DATA :GT_FILTER TYPE SLIS_T_FILTER_ALV,
GS_FILTER TYPE SLIS_FILTER_ALV.
过滤代码片段

创建EVENT表:进行筛选
DATA:GT_EVENT TYPE SLIS_T_EVENT, “ALV事件
GS_EVENT TYPE SLIS_ALV_EVENT.
event代码片段

注意:
ALV中CHAR类型默认输出后左对齐,数字类型默认右对齐。
fieldcat是一张内表,记录的是ALV输出时每列的属性信息。
layout是一个结构,存储的整个表单的全局设置。
添加图标:Tcode:ICON查看,需要用时直接复制icon名。
这里写图片描述
单击的前提是要设置热点
单击和双击虽然都是‘&IC1’,但是一般来说单击是真的某个单元格,双击则是某一行

附上相关代码:

*&---------------------------------------------------------------------*
*& Report  Z9617_OLE_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT Z9617_F_ALV01.

TABLES: MARA,MARD,MAKT.
TYPE-POOLS SLIS.



DATA : BEGIN OF GT_MARA OCCURS 0,
         MATNR TYPE MARA-MATNR,
         NTGEW TYPE MARA-NTGEW,
       END OF GT_MARA.

DATA : BEGIN OF GT_MAKT OCCURS 0,
         MATNR TYPE MAKT-MATNR,
         SPRAS TYPE MAKT-SPRAS,
         MAKTX TYPE MAKT-MAKTX,
       END OF GT_
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值