SAP教程中的ALV报告 - ABAP列表查看器-012

SAP教程中的ALV报告 - ABAP列表查看器-012

任何报告的常见所需功能是“列对齐”,排序,过滤,小计,总计等。要从头开始实现这些,需要投入大量的编码工作。为了避免这种情况,我们可以使用一个名为ABAP列表查看器(ALV)的概念。

在本教程中,您将学习:

  • 简单报告
  • 区块报告
  • 分层报告
  • 显示变体

这些报告中的每一个都提供了功能模块,这些模块有助于轻松生成所需的输出。让我们详细看看它们 -

简单报告

这些报告中的重要功能模块是 –

  • Reuse_alv_fieldcatalog_merge
  • Reuse_alv_list_display
  • Reuse_alv_events_get
  • Reuse_alv_grid_display
  • Reuse_alv_commentary_write

REUSE_ALV_FIELDCATALOG_MERGE
此功能模块用于填充字段目录,这对于在ALV中显示数据至关重要。
如果输出数据来自单个字典表,并且选择了所有列,则我们不需要以独占方式创建字段目录。在REUSE_ALV_LIST_DISPLAY中将表名作为参数(I_structure_name)提及就足够了。但在其他情况下,我们需要创建它。

注意:字段目录也可以通过将所有必需的详细信息填充到内部表中来手动填充

中的重要参数有:

1. 出口:

  • I_program_name: 报告 ID
  • I_internal_tabname:内部输出表
  • I_inclname:包含 或处理所有动态表单的报表名称。

2. 更改

  • ct_fieldcat :类型为 SLIS_T_FIELDCAT_ALV 的内部表,在类型池 SLIS 中声明。

REUSE_ALV_LIST_DISPLAY
这是打印数据的函数模块。
重要参数有:

1. 出口:

  • I_callback_program: 报告 ID
  • I_bypassing_buffer : ‘X’
  • I_buffer_active : ’ ’
  • I_callback_pf_status_set :例程,用户可以在其中设置自己的 pf 状态或更改现有 pf 状态的功能。
  • I_callback_user_command:处理函数代码的例程。
  • I_structure名称:字典表的名称
  • Is_Layout:设置报表布局的结构
  • It_fieldcat:内部表格,其中包含要打印的所有字段及其属性的列表(此表格可由函数自动填充)
  • It_events :内部表,其中包含ALV的所有可能事件及其相应的表单名称的列表。

2. 表格:

  • a. t_outtab:包含要输出的数据的内部表

REUSE_ALV_EVENTS_GET:
返回列表类型的可能事件的表

1. 导入:

Et_Events :事件表将返回指定列表类型(列“NAME”)的所有可能的回调事件。对于回调要处理的事件,必须填写其“FORM”字段。如果该字段已初始化,则忽略该事件。可以从事件表中读取该条目,填充字段“FORM”,并使用类型池SLIS中的常量修改该条目。

2. 出口:

I_list_type:0 = 简单列表REUSE_ALV_LIST_DISPLAY
1 = 分层顺序列表REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = 简单阻止列表REUSE_ALV_BLOCK_LIST_APPEND
3 = 分层顺序阻止列表REUSE_ALV_BLOCK_LIST_HS_APPEND

REUSE_ALV_GRID_DISPLAY
ABAP4.6 版本中的新功能,用于在网格中显示结果,而不是预览。
参数:与reuse_alv_list_display相同

注意:网格无法处理高容量。排序等功能,如果要显示的数据量很高,向下滚动会消耗大量资源/时间。没有明确的定义,如果数据量是X,则选择列表或网格,但开发人员必须根据他的经验进行调用。如果不确定,那么列表是更好的选择

REUSE_ALV_COMMENTARY_WRITE
这在“页首”事件中用于打印列表的标题和其他注释。
重要参数

  • It_list_commentary :标题为slis_t_listheader的内部表格。
    此内部表有三个字段:
  1. 类型: ‘H’ – 标题, ‘S’ – 选择, ‘A’ – 动作
  2. 键 :仅当典型值为“S”时。
  3. 信息:要打印的文本

区块报告

这看起来像一个简单的报表,但此报表仅具有排序和筛选功能。如果必须在输出上显示多个报表,则使用此报表。从技术上讲,如果您有多个内部表,其中的数据显示为单独的块,那么我们就会选择ALV的块报告。

用于创建此报告的重要函数包括:

  • REUSE_ALV_BLOCK_LIST_INIT
  • REUSE_ALV_BLOCK_LIST_APPEND
  • REUSE_ALV_BLOCK_LIST_DISPLAY

REUSE_ALV_BLOCK_LIST_INIT
此功能模块用于设置默认 GUI 状态等。这些参数类似于reuse_alv_list_display或reuse_alv_grid_display

REUSE_ALV_BLOCK_LIST_APPEND
该函数模块将数据添加到块中。
重要参数
1.出口:

  • is_layout: 块的布局设置
  • it_fieldcat: 字段目录
  • I_tabname:包含所有可能事件的内部表名
    2.表格 :
  • t_outtab:包含输出数据的内部表。

REUSE_ALV_BLOCK_LIST_DISPLAY
此函数模块显示包含上述函数附加的数据的列表。
参数 :所有参数都是可选的。

分层报告

分层显示用于显示相关的数据。如销售订单和物料详细信息。此处,销售订单详细信息可以是标题数据,而销售订单中的项目可以是项目数据
用于此目的的函数模块是

REUSE_ALV_HIERSEQ_LIST_DISPLAY
出口:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_LAYOUT
  • It_fieldcat
  • It_events
  • I_tabname_header :包含最高层次结构级别输出数据的程序中内部表的名称。
  • I_tabname_item :包含最低层次结构级别输出数据的程序中内部表的名称。
  • Is_keyinfo:此结构包含链接两个表(共享键)的标题和项目表字段名称。

  • t_outtab_header: 要输出数据的头像表
  • t_outtab_item :程序中包含最低层次结构级别的输出数据的内部表的名称。

内部表、结构和常量的所有定义都在名为 SLIS 的类型池中声明。可以使用REUSE_ALV_FIELDCATALOG_MERGE自动填充此内部表。

显示变体

  • 显示变体用于设置 alv 输出的默认属性,如排序条件、过滤条件、总计和小计等
  • 显示变体可以是用户特定的和标准的(标准变体可以由任何用户使用)
  • 可以保存的显示变体类型由功能模块中传递的参数i_save控制reuse_alv_list_display/ reuse_alv_grid_display
  • 您可以在选择屏幕上提供一个选项,以选择要使用的显示变体

与选择/验证显示变体相关的常见功能模块是

  1. Reuse_alv_variant_default_get
  2. Reuse_alv_variant_f4
  3. Reuse_alv_variant_existence

这就是ABAP-ALV编程的全部内容!
参考:https://www.guru99.com/alv-list-view-programming.html

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值