关于 ABAP 报告编程
SAP-ABAP 支持两种类型的程序 - 报告程序和对话程序。当需要显示大量数据时,使用报告程序
报告程序的目的/用途
- 当需要在呈现之前选择和处理来自多个表格的数据时,可以使用它们
- 当报告需要特殊格式时使用
- 当报告需要从以下位置下载时使用 SAP 到 Excel 表中进行分发。
- 当报告需要邮寄给特定的人时使用。
报告程序注意事项
- 报告程序始终是可执行程序。程序类型始终为 1。
- 每个报告程序对应一种特定的应用类型,即销售和分销、FI - CO 等。它也可以是跨应用,即类型“*”。
- 报表编程是一种事件驱动的编程。
- 报告程序的第一行始终是报告 。
- 要隐藏列表标题或程序名称,请添加 没有标准页标题 用来。
- 可以使用以下附加功能设置特定报告的行大小 行大小。
- 可以使用以下方法设置特定页面的行数 行数 n(n1)。N 为页面的行数,N1 为保留给页脚的行数。
- 为了显示任何信息或错误消息,我们使用以下附加功能向程序添加一个消息类: 消息 ID 。 消息类别在 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 的程序后,在内部会话中触发相关事件。
- 还为每个程序和内部会话仅运行一次相关的处理块。
- 处理块 LOAD-OF-PROGRAM 的功能与 ABAP 程序 类型 1、M、F 或 S 作为 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 访问数据将数据放入工作区的命令。
逻辑数据库相对于普通选择查询的优势。
- 它提供检查条件来查看输入是否正确、完整和合理
- 它包含数据库访问的中央授权检查
- 性能改进等增强功能立即应用于所有使用逻辑数据库的报告。
注意:由于涉及的复杂性,大多数情况下不使用逻辑数据库