1.概述
SAP Query为我们提供了三种Query工具 SAP Query、InfoSet (Ad Hoc) Query、QuickViewer。通常在不特指的情况下我们所说的Query Report就是SAP Query,因为它的功能较其它两个工具更加强大些。
InfoSet Query的特点:
¾ Quick Viewer所生成的报表是用户自定义的报表,只能由此用户自己使用、维护。
¾ Quick Viewer只能使用存于数据库内的数据,不能进行计算(除小计、累计) 。
¾ 提供与 SAP内部工具如EIS,ABC,ALV及外部工具如 Word,Excel接口 。
¾ 无须也无法利用用户组、Functional area统一管理
¾ 无法传输
SAP Query的特别:
¾ Query的管理包括建立 Functional area(功能区)和User Group(用户组),并将功能区分配到相应的用户组中去。
¾ Functional area(功能区)中定义query中需引用的表和字段。
¾ 只有当一个用户属于至少一个用户组才可以创建、运行 Queries。一个用户可以属于几个用户组。用户组中的用户享有相同的权力。
¾ 当 Functional area(功能区)分配给了某用户组,该用户组的成员即可以访问此功能区。
¾ 一个 Functional area(功能区)可以分配给多个用户组;多个Functional area(功能区)可以分配给一个用户组。
¾ Queries通常为特定的用户组和特定的功能区而建立。这个用户组的用户可以访问所有分配给这个用户组的Queries。
2.实例操作讲解SAP Query
简单来讲,制作SAP Query可以用到SQ03(创建用户组并分配用户)、SQ02(创建InfoSet并分配到用户组)、SQ01(在分配好的用户组中使用信息集来生成Query Reporting)这三个事务代码。
2.1 创建用户组并分配用户 Tcode:SQ03
Figure1-1:创建新的用户组
Figure1-2:保存新的用户组
Figure1-3:为新的用户组分配用户
2.2 创建InfoSet并分配到用户组 Tcode:SQ02
Figure2-1:创建新的InfoSet
Figure2-2:保存
Figure2-3:将InfoSet分配到用户组
Figure3:指定数据源及其类型。
Figure4:如果使用“包括关键字段”,则InfoSet会自动带入数据源的Key值字段,当然也可以使用其它另外两个选择项,不过那样看上去会有些怪异。
Figure5-1:转换显示与更改
Figure5-2:检查是否有错误
Figure5-3:生成信息集InfoSet(重要)
Figure5-4:连接(可以添加数据源连接,较重要)
Figure5-5:附加(可以添加全局字段、对字段进行代码控制、对选择屏幕进行控制等,重要)
Figure5-6:查看附加代码
Figure5-7:增加字段组(当信息集字段相当多时,可以使用它对字段进行分组管理)
Figure6-1:新增字段组并且拉入了一个新的字段Bseg-DMBTR。 用鼠标拖拽的方式把左侧的字段拉入右侧的信息集InfoSet,或者右击信息集InfoSet字段进行删除。操作完成点击保存按钮并点击生成按钮以生成信息集。
点击Figure2-3,将信息集InfoSet分配到用户组。
2.3 创建Query Reporting Tcode:SQ01
Figure7-1:转到信息集所在的用户组(Query Reporting可以看做是信息集的派生出的报表,所以第一步应先找到信息集的所在,SQ02把它分配到某个用户组了,所以这里应先用这个按钮转到此用户组,重要)
Figure7-2:对Query Reporting进行测试
Figure7-3:为新的Query Reporting命名
Figure7-4:点击创建
Figure7-5:快速浏览器(这里就是概述里讲到的QuickViewer)
Figure7-6:信息集查询(这里就是概述里讲到的InfoSet)
Figure7-7:Query Reporting列表
Figure8:变更查询的标题及格式 完成后点击下一页或者按F6
Figure9:更改快速浏览的选择字段组(这一页可以保持默认不变,因为它的下一页还要再设置)
Figure10:选择搜索字段。
Figure11-1:如果将检查标记放在此复选框中,那么在选择字段中只准备一个条目字段.选择"多选择"附加字段的按钮,是可用的,以确保您使用此功能来进行多项选择. 如果要撤销激活多选择功能,那么将检查标记放在复选框中.
Figure11-2:若选择此复选框,就能在选择屏幕上指定单一值或间隔.选择额外屏幕的按钮"多重选择"不可用,有效预防进行多重选择. 若想限制选择以致仅允许选择单一值,也要在首个复选框中安置一个检查标记.
注:这里不能设置搜索条件是否必输。如需设置,可到SQ02信息集中去设置,我们将在后面讲到。
当“下一页”的按钮变灰,点击“基本清单”。基本清单的显示有两种格式,一种是图形查询绘制器格式设计,另一种是非图形查询绘制器格式设计。它们可以通过选中菜单“设置- 设置- 图形查询绘制器”的复选框,SAP V4.6或高版本的SAP Query是默认选中此选项的,选中即代表所见即所得的设计格式。
Figure12-1:打开或关闭所有工具(包括排序字段、总计字段、计算字段、工具箱等。重要)
Figure12-2:Query Reporting的显示字段(打勾的顺序是很重要的)
Figure12-3:Query Reporting的搜索字段
Figure12-4:字据字段的下面方框中可以设置字段显示的宽度、位置甚至颜色等)
Figure12-5:已经打开的小工具(可以拖拽的字段值到小工具栏中,例如将“凭证号码”字段下方的“ABCDEFGHIJ”拖拽到排序小工具中)
小窍门:如果Query Reporting的字段非常多,显示顺序不太容易设定,可以点击Figure7-6然后用鼠标去拖动列直到你满意为止,这样是方便的。
测试或保存Query Reporting。
3.Query Reporting高级应用
3.1添加全局字段并使用代码控制值(多表关联) TCODE:SQ02
Figure13-1:点击“附加”
Figure13-2:新建字段(此字段是全局字段,非本地字段。所有使用此信息集InfoSet生成的Query Reporting都可以看到此字段)
Figure14:添加Z_period,意为显示凭证的会计期间。(因Bseg中不包含会计期间的信息,而BKPF包含)
Figure15:设置Z_period的简单参数。
点击Figure13-3:转到附加代码
3.2添加全局字段并使用代码控制值(对查询结果进行算数运算) TCODE:SQ02
Figure17:可以在代码附加中使用简单的语句实现对查询结果的算数运算。其它操作如3.1操作。
3.3 对搜索字段设置单选必输 TCODE:SQ02
Figure18-1:点击“附加”
Figure18-2:选择“选择”页签
Figure18-3:新建
Figure18-4:在“创建选择”窗口输入名称,并选择“选择指标”
Figure19:格式 “FOR” 输入 将要设为单选必输的字段;附加中输入“OBLIGATORY NO-EXTENSION NO INTERVALS” 。 保存即可。
3.4 新增本地字段并设置简单属性 SQ01
在Figure10中点击菜单:编辑---短名---打开/关闭
点击菜单“编辑---局部字段---创建”。
Figure21:在“字段定义”窗口中输入以上内容。
Figure22:在“基本清单”中选择刚刚创建的“本地附加字段--金额(局部)”,测试运行。
Figure23:添加了“金额(局部)”的查询结果。
3.5 新增本地字段并设置图标属性 SQ01
Figure24:属性选择“符号”,在条件框中输入条件,并选择一种符号,保存。
Figure25:输出结果
3.6 对查询结果附加操作(使用TR)
Figure26-1:点击"插入行"
Figure26-2:点击"其它报告类型"
Figure27-1: 选择TR 事务
Figure28:输入 FB03 并保存 可以实现双击查询结果联查到凭证.
3.7 对查询结果附加操作(使用RT)
如果要实现对查询更加复杂的操作,那就要选择Figure27-2使用"RT ABAP报表程序".,选择这种类型的前提是你已经写好了一个ABAP报表程序。 如本例,我使用SE38写了一个小小的程序来实现双击查询行项目联查到凭证。
*&---------------------------------------------------------------------*
*& Report Z_QUERY_DELANO1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_QUERY_DELANO1.
PARAMETER: z_BELNR like bseg-BELNR,
z_BUKRS like bseg-BUKRS,
Z_GJAHR like bseg-GJAHR.
set PARAMETER ID 'BLN' FIELD Z_BELNR.
set PARAMETER ID 'BUK' FIELD z_BUKRS.
set PARAMETER ID 'GJR' FIELD Z_GJAHR.
call TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
点击Figure27-2后,在Figure29中录入你提前写好的Report名称,保存。