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

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

每份报告均提供 功能模块 这有助于毫不费力地产生所需的输出。让我们详细看看它们——

简单报告

其中重要的功能模块 报告 是 -

  • 重用_alv_fieldcatalog_merge
  • 重用_alv_list_display
  • 重用_alv_events_get
  • 重用_alv_grid_display
  • 重用_alv_commentary_write

重复使用 ALV_FIELDCATALOG_MERGE

此功能模块用于填充对于在 ALV 中显示数据至关重要的字段目录。

如果输出数据来自单个字典表并且选择了所有列,则我们不需要专门创建字段目录。在 REUSE_ALV_LIST_DISPLAY 中将表名作为参数 (I_structure_name) 提及就足够了。但在其他情况下,我们需要创建它。

注意:也可以通过将所有必需的详细信息填写到内部表中来手动填写 Fieldcatalog

重要的参数有:

1. 出口:

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

2.改变

  • ct_fieldcat :一个 内表 使用在类型池 SLIS 中声明的类型 SLIS_T_FIELDCAT_ALV。

重复使用 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 name :字典表的名称
  • Is_Layout:设置报告布局的结构
  • It_fieldcat:内部表,包含要打印的所有字段及其属性的列表(该表可由函数自动填充)
  • It_events:内部表,列出 ALV 所有可能的事件及其对应的表单名称。

2.表格:

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

重用_ALV_事件_获取:

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

1. 进口:

Et_事件:返回事件表,其中包含指定列表类型(列“NAME”)的所有可能的 CALLBACK 事件。对于要由回调处理的事件,必须填写其“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

重复使用 ALV_GRID_DISPLAY

ABAP4.6 版本中的一项新功能,以网格而不是预览的形式显示结果。

参数:与reuse_alv_list_display相同

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

重用 ALV_注释_写入

这用于页面顶部事件中打印列表的标题和其他注释。

重要参数

  • It_list_commentary:具有 slis_t_listheader 类型标题的内部表。

这个内部表有三个字段:

  1. 类型:'H' – 标题,'S' – 选择,'A' – 操作
  2. 键 :仅当类型为“S”时。
  3. 信息:要打印的文本

区块报告

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

用于创建此报告的重要功能是:

  • 重用 ALV 块列表初始化
  • 重用 ALV_BLOCK_LIST_APPEND
  • 重复使用 ALV 块列表显示

重用 ALV 块列表初始化

该功能模块用于设置默认的gui状态等,参数与reuse_alv_list_display或reuse_alv_grid_display中使用的参数类似

重用 ALV_BLOCK_LIST_APPEND

该功能模块将数据添加到块中。

重要参数

1.出口:

  • is_layout :块的布局设置
  • it_fieldcat :字段目录
  • I_tabname :包含所有可能事件的内部表名

2.表格:

  • t_outtab:带有输出数据的内部表。

重复使用 ALV 块列表显示

此功能模块显示由上述功能附加的数据列表。

参数:所有参数都是可选的。

分层报告

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

用于此的功能模块是

重复使用 ALV_HIERSEQ_LIST_DISPLAY

出口:

  • 回调程序
  • 回调函数 PF 状态设置
  • 回调用户命令
  • 布局
  • 它_fieldcat
  • 事件
  • I_tabname_header:程序中包含最高层次结构级别的输出数据的内部表的名称。
  • I_tabname_item:程序中包含最低层次结构级别的输出数据的内部表的名称。
  • Is_keyinfo :此结构包含链接两个表(共享键)的标题和项目表字段名称。

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

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

显示变体

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

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

  1. 重用_alv_variant_default_get
  2. 重用_alv_variant_f4
  3. 重用_alv_variant_existence

这就是全部 ABAP – ALV 编程!