赛博仓鼠导读:本文是一份关于 SAP FI/CO 模块中经典报表工具 Report Painter/Report Writer 的详细配置指南。它系统性地解决了顾问在创建自定义财务报表(如按事业部列示的资产负债表)时,如何从零开始配置报表库、定义行/列项目、设置变量与集、并最终生成可执行事务代码的具体问题。文章通过一个清晰的实例,逐步拆解了从 GR21 到 SE93 的完整配置路径,并解答了关于数据来源与计算逻辑的核心疑问,是掌握这一“编码少但配置繁”工具的操作手册。
目录
- 概述
- 事务代码
- 配置方法
- 库注册:GR21
- 报表注册:GRR1
- 【列项目设置】启动路径:双击标题项目
- 集注册:GS01
- 变量注册:GS11
- 【行项目设置】启动路径:双击行项目
- 【一般数据设置】启动路径:ALV菜单栏 > 编辑 > 一般数据选择
- 【列项目设置】启动路径:双击标题项目
- 作业注册:GR51
- 事务注册:SE93
- 表结构
- 练习题
- Q&A
- 【Report Painter/Report Writer】选择屏幕上输出的项目是在哪里定义的?
- 【Report Painter/Report Writer】输出画面上显示的数据是如何计算出来的?
概述
SAP 中用于简易创建报表程序的机制。
用于从单一表中获取数据,并以偏好的布局进行显示。
主要在财务会计和管理会计中使用。
虽然不需要复杂的编码,但由于 UI/UX 难以理解,最初上手有一定难度。
此外,由于读取的表只能是一个,因此无法结合多个表进行显示。
可以进行项目的汇总和四则运算。
事务代码
| 配置对象 | 注册 | 修改 | 查询 | 配置内容、备注 |
|---|---|---|---|---|
| 库 | GR21 | GR22 | GR23 | 定义报表读取的表、项目。 |
| 报表 | GR31 | GR32 | GR33 | 定义报表的布局。 |
| 集 | GS01 | GS02 | GS03 | 定义项目的层次结构、分组。 |
| 变量 | GS11 | GS12 | GS13 | 定义可变的项目。也指定初始值。 |
| 作业 | GR51 | GR52 | GR53 | 使报表进入可执行状态。 |
| 事务 | SE93 | SE93 | SE93 | 将报表与事务代码关联起来。 |
配置方法
以输出如下按事业部的资产负债表为例进行说明。
纵向(行)列出 BS 科目,
横向(列)显示在选择画面中输入的标准会计年度的金额、上年度的金额、差额(标准会计年度-上年度)。
库注册:GR21
指定报表读取的表和项目。
本次示例中指定 GLT0,如果是利润中心会计则指定 GLPCT 等汇总表。
※指定的表是单一的。无法结合多个表进行抽取。
此外,对使用的项目,分别设置特性、基本关键值(勾选要使用项目的复选框)。
| 特性 | 指定要使用的特性项目(作为分析维度的项目。如组织架构的主数据或时间相关的项目等。相当于公司代码、会计年度等)。 |
| 基本关键值 | 值项目(数值项目。如金额、数量等) |
| 关键值 | 为常用的基本关键值,同时赋予维度切口的项目。例如,第一季度的金额等。 ※ 组合了“第一季度(1月~3月)”这一特性和“金额”这一值项目。 ※ 如果觉得复杂,可以先跳过。 |
报表注册:GRR1
按以下顺序说明。
- 列项目(标准会计年度、上年度、差额)的设置
- 行项目(科目代码)的设置
- 其他项目(公司代码、事业部。称为“一般数据”)的设置
【列项目设置】启动路径:双击标题项目
列项目的要点在于,指定要显示的值项目(金额项目)。
这一点与行项目或一般数据不同。
另外,设置显示金额的抽取条件(汇总单位)。
这是行项目或一般数据同样需要设置的内容。
此外,选择的项目、变量将成为报表选择画面上显示的项目。
※ 面向想了解更多细节的人
基本上应从“带特性的关键值”开始设置。
在这里如果指定“预定义关键值”,则可以预先设置好定义的基本关键值或特性作为初始值。
标准会计年度
以选择画面输入的会计年度为条件,从 GLT0 表获取金额(HSL 本币)。
要显示的金额是按会计年度单位汇总的,因此在“已选特性”中指定会计年度。
各项目的说明如下。
如果觉得复杂的地方,建议先跳过,稍后再读。
| 基本关键值 | 指定输出的数值项目。本次示例中为金额项目 HSL。 |
| 已选特性 | 选择作为抽取条件、汇总单位的项目。从“可用特性”中选择项目,点击“<”按钮移动到已选特性。 这里选择的项目、变量将成为报表选择画面上显示的项目。 |
| - 名称 | 选择作为抽取条件、汇总单位的项目。 对于标准会计年度,要显示按年度汇总的值,因此指定“会计年度”。 |
| - SET | 影响开始、结束项目。当开始、结束项目使用具有层次结构、分组结构的数据时,将 SET 设为 ON。 ※ 详情后述 |
| - 变量 | 使用变量时,将变量设为 ON。 ※ 详情后述 |
| - 开始 | 对选择的特性项目,指定允许输入的范围。 直接输入值或数值来指定,或者要指定变量(可变的数值等)时,输入变量名。 |
| - 结束 | 与“开始”相同,输入范围指定时的结束值。 |
| - 附加 | 对一个特性项目输入多个范围时使用。 |
| - 展开 | ※ 仅限行项目、一般数据 可以设置为能够展开/压缩具有层次结构或分组结构的项目。 ・无展开:没有展开/压缩按钮,仅显示合计值。 ・展开:可以通过压缩/展开按钮进行打开/关闭。 (本次示例中,可以在按科目代码显示/全部科目合计显示之间切换) ・单独值:不显示合计行,各值被列出。 (本次示例中,列出各科目代码的金额,不出合计值) |
上年度
基本设置与标准会计年度相同。
但是,从表抽取的条件是 标准会计年度-1 的年度,因此需要在变量定义中设置。
※ 如果觉得复杂,可以先跳过。
关于集、变量 ※ 面向想了解更多细节的人
集注册:GS01
定义层次结构、分组结构时使用。
本次示例中,事业部和科目代码属于此类。
| 基本集 | 用开始~结束范围指定分组的内容。※ 当集中同时包含集和范围指定时使用这个? |
| 单维集 | 可能是定义层次结构上层结构的东西。通过指定下层集,可以定义层次结构。“单一”是因为只对一个项目定义层次结构。 |
| 多维集 | 与单维集不同,对多个项目(例如,科目代码和事业部)注册集。 |
| 关键值集 | 将关键值集化的东西。 |
变量注册:GS11
定义可变项目时使用。
本次示例中,公司代码、会计年度等属于此类。
另外,通过设置初始值,可以指定选择画面的初始值。
变量有以下 3 种类型(称为变量类型)。
- 值
- 用于建议初始值。
- “选择画面的输入项目”> 勾选内部变量,则不会在选择画面显示,只影响抽取条件。
- (部分项目显示的)“选择画面的输入项目”> 勾选参数 ID,则参数值优先于初始值。例如,如果在第 6 期操作 SAP,会计期间的初始值会填入“6”。
- 公式
- 可以进行四则运算。
- 本次示例中,上年度是标准会计年度减 1 年的值,因此输入“标准会计年度-1”这样的印象。
- 内部变量的复选框,与“值”类型相同。
- 集
- 使用具有层次结构、分组结构的项目时指定。
- “初始值”的设置
- 所有值:表示所有值,在选择画面上显示为空白(=无条件、全部)
- 初始值集:要指定初始值时在此输入值
- “选择画面的输入项目”的设置
- 集和值输入:在选择画面上可以用集(集、分组)或范围指定来输入条件
- 仅集输入:在选择画面上只能通过集(集、分组)指定条件
- 仅值输入:只能通过范围指定条件
差额(公式)
差额是 标准会计年度的金额 – 上年度的金额 这样计算出的列项目,因此需要进行称为“公式”的定义。
双击标题项目 > 选择公式,在公式行输入 X001 – X002。
【行项目设置】启动路径:双击行项目
特性值的设置方法与列项目相同。
不同点在于,可以设置“展开”项目。
行项目大多具有层次结构或进行了分组。
本次示例中科目代码具有层次结构,因此将 SET 设为 ON,指定“展开”。
【一般数据设置】启动路径:ALV菜单栏 > 编辑 > 一般数据选择
指定未在行项目或列项目中指定,但希望包含在抽取条件中、在选择画面上输入的项目。本次示例中为公司代码、事业部。
这些项目是希望同时成为“标准会计年度”和“上年度”抽取条件的项目。
通过将这些项目设置为一般数据,它们将成为两者的抽取条件。
此外,通过设置“展开”,可以在导航区域(输出画面的左侧)显示层次结构。本次示例中,将事业部的 SET 设为 ON,指定“展开”。这样,在输出画面上可以切换显示按事业部的 BS 科目、全部事业部合计的 BS 科目。
输出画面的标题页、页眉的编辑方法 ※ 面向想了解更多细节的人
- 标题页
输出画面显示时不可见。向上滚动后可见。
编辑方法:ALV菜单栏 > 附加 > 报表文本 > 标题页 - 页眉
输出画面显示时显示在画面上部。
编辑方法:ALV菜单栏 > 附加 > 报表文本 > 页眉
作业注册:GR51
为了执行报表,需要进行作业注册。
操作上,主要是将作业 ID 与报表 ID 关联,然后执行“生成”。
生成完成后,报表即可执行。
※ 一个作业 ID 可以关联多个报表,但要使事务代码与报表 1:1 关联,需要将作业 ID 与报表 1:1 注册。
此外,进行作业注册后会分配程序 ID。
因此,报表的执行以及下一项说明的事务注册成为可能。
注意,程序 ID 每次生成都不同,环境改变程序 ID 也会改变。
事务注册:SE93
通过将作业 ID 与事务代码关联,使得可以通过事务代码执行报表。
关联关系为:事务代码 → 作业 ID → 报表 ID。
配置内容的主要部分如下。
- 事务代码
- 跳过初始屏幕:ON
- 继承 GUI 属性:ON
- 默认值
- D_SREPOVARI-REPORTTYPE:RW
- D_SREPOVARI-REPORT:输入作业 ID
表结构
| SETLEAF | 保持层次结构 |
| SETNODE | 保持集的内容(范围) |
练习题
编辑中。
Q&A
【Report Painter/Report Writer】选择屏幕上输出的项目是在哪里定义的?
在选择画面上输出的项目,是在报表定义(GRR1)的“列项目”、“行项目”、“一般数据”的“已选特性”中勾选了“变量”的项目。这些项目会作为输入字段在选择画面上显示。
【Report Painter/Report Writer】输出画面上显示的数据是如何计算出来的?
输出画面上显示的数据,是根据在报表定义(GRR1)中为每个“列项目”设置的“基本关键值”和“已选特性”(包括变量和集),从指定的单一表(在 GR21 的库中定义)中抽取并汇总计算出来的。对于“差额”等计算列,则是根据定义的公式(例如 X001 - X002)对已抽取的数据进行运算得出的结果。
来源: SAP認定コンサル道場 | 整理: 赛博仓鼠 (Eddy)
(本文内容仅供学习交流,版权归原作者所有)






