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 类型标题的内部表。
这个内部表有三个字段:
- 类型:'H' – 标题,'S' – 选择,'A' – 操作
- 键 :仅当类型为“S”时。
- 信息:要打印的文本
区块报告
这看起来像一个简单的报告,但该报告仅具有排序和过滤功能。如果您必须在输出中显示多个报告,则使用此报告。从技术上讲,如果您有多个内部表,其中的数据要显示为单独的块,那么我们会选择 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控制
- 您可以在选择屏幕上提供一个选项来选择要使用的显示变体
与选择/验证显示变体相关的常见功能模块包括
- 重用_alv_variant_default_get
- 重用_alv_variant_f4
- 重用_alv_variant_existence
这就是全部 ABAP – ALV 编程!