SAP ABAP 报告编程-08
SAP-ABAP支持两种类型的程序 - 报告程序和对话程序。报表 程序在需要显示大量数据时使用
在本教程中,您将学习:
- 选择屏幕
- ABAP 报告计划中的事件
- 设置报表格式
- 交互式报告编程
- 逻辑数据库
报告程序的目的/用途
- 当在呈现之前必须选择和处理来自多个表的数据时,将使用它们
- 在报表需要特殊格式时使用
- 当必须将报表从 SAP 下载到要分发的 Excel 工作表时使用。
- 在必须将报告邮寄给特定人员时使用。
关于报告程序的注意事项
- 报表程序始终是可执行程序。程序类型始终为 1。
- 每个报告程序对应于特定的应用程序类型,即销售和分销,FI - CO等。它也可以是跨应用程序,即键入“*”。
- 报告编程是一种事件驱动的编程。
- 报表程序的第一行始终是报表*<报表名称>。*
- 要禁止显示列表标题或程序名称,请使用添加*“无标准页面标题*”。
- 可以使用加法行大小<大小>来设置特定报表的行大小。
- 可以使用加法行计数 n(n1) 来设置特定页面的行计数。N 是页面的行数,N1 是为页面页脚保留的行数。
- 为了显示任何信息或错误消息,我们使用添加的add将消息类添加到程序中:Message-id<message类名>。 邮件类在 SE91 中维护。
因此,理想的报告程序应从以下方面开始:
Report <report name> no standard page heading
line-size <size>
line-count <n(n1)>
message-id <message class>.
选择屏幕
选择屏幕”是指定程序应运行的输入值的屏幕。
选择屏幕通常从
- 参数
- 选择-选项
语法
Selection-screen begin of screen <screen #>
selection-screen begin of block <#> with frame title <text>
.........
.........
selection-screen end of block <#>
selection-screen end of screen <screen #>
参数
参数有助于进行动态选择。它们只能容纳一个值用于程序的一个执行周期。
语法
将参数定义为数据类型
Parameters p_id(30) type c.
定义参数,如表字段。
Parameter p_id like <table name>-<field name>.
参数可以是复选框,也可以是单选按钮。
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>.
Parameters p_id2 radiobutton group <group name>.
参数可以是列表框。
Parameter p_id like <table name>-<field name> as listbox
选择选项
选择选项用于向程序输入一系列值或一组值
语法
select-options s_vbeln for vbak-vbeln.
您还可以定义一个选择选项,如变量
select-options s_vbeln for vbak-vbeln no intervals no-extension
ABAP 报告计划中的事件
ABAP 报告程序是事件驱动的程序。报表中的不同事件 程序 包括:
程序加载
- 加载类型为 1、M、F 或 S 的程序后,在内部会话中触发关联的事件。
- 同时为每个程序和内部会话运行一次关联的处理块,并且仅运行一次。
- 对于类型为 1、M、F 或 S 的 ABAP 程序,处理块 LOAD-OF-PROGRAM 的函数与构造函数对于 ABAP 对象中的类具有的函数大致相同
初始化。
- 此事件在显示选择屏幕之前执行。
- 初始化所有值。
- 您可以指定除选择屏幕上默认值以外的其他值。
- 您可以在运行时用一些值填充选择屏幕。
在选择屏幕上。
- 在处理选择屏幕时(在 PAI 的末尾)处理该事件。
- 输入值的验证和检查在这里进行
开始选择。
- 在这里,程序开始从表中选择值。
选择结束。
- 选择所有数据后,此事件会将数据写入屏幕。
互动活动
- 用于交互式报告。它用于从基本列表创建详细列表。
设置报表格式
ABAP 允许将报表的格式设置为用户希望的格式。例如,“备用行”必须以不同的颜色显示,“总计”行应以黄色显示。
语法
Format Color n
Format Color n Intensified On
n 可以对应于各种数字
请注意,除了格式之外,还有其他添加内容
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
交互式报告编程
- 使用交互式编程,用户可以主动控制数据的检索和显示
- 用于从非常基本的列表创建详细列表
- 详细数据写在辅助列表中。
- 辅助列表可以完全覆盖第一个屏幕,也可以在新屏幕中显示它
- 辅助列表本身可以是交互式的。
- 第一个列表也可以调用事务。
- 有不同的事件与交互式编程相关联。
用于交互式编程的一些命令
热点
如果将鼠标拖到报表中显示的数据上,光标将变为“伸出食指”手。可以使用 FORMAT 语句实现热点。
Syntax: Format Hotspot On (Off).
隐藏
此命令可帮助您根据将要进行进一步处理的字段名称来存储字段名称,以获取详细列表。它直接写在字段的 WRITE 语句之后。选择行时,值将自动填充到变量中以供进一步使用。
Syntax: Hide <field-name>.
逻辑数据库
- 您可以使用逻辑数据库来检索程序的数据,而不是使用“选择”查询。
- 逻辑数据库由事务 SE36 创建
- 逻辑数据库的名称最多可包含 20 个字符。它可能以命名空间前缀开头。
- 数据由另一个程序选择,可以使用GET命令访问数据,该命令将数据放在工作区。
逻辑数据库相对于普通 Select 查询的优势。
- 它提供了检查条件,以查看输入是否正确,完整和合理
- 它包含数据库访问的中央授权检查
- 性能改进等增强功能立即应用于使用逻辑数据库的所有报表。
注: 由于所涉及的复杂性,在大多数情况下不使用逻辑数据库
参考:https://www.guru99.com/all-about-abap-report-programming.html