SAP为没有编程基础的用户提供了两种简单的报表制作工具,用户可以根据自己的需要生成简单的查询报表。但是实际上它们跟ABAP开发报表没有实质的区别,也是基于代码的,只是系统在你操作的基础上已经自动为你生成了代码。同时在SAP QUERY中还允许添加ABAP代码,当存在附加表和附加字段时尤其重要。总的来说,作为查询工具他们已经相当完善,足以满足用户一般的查询和统计了。
要全面的理解QUERY,首先看一下QUICKVIWER。事务代码:SQVI
1、 Quick Viewer所生成的报表是用户自定义的报表,只能由此用户自己使用、维护;
2、 Quick Viewer只能使用存于数据库内的数据,不能进行计算(除小计、累计);
3、 提供与SAP内部工具如EIS,ABC,ALV及外部工具如Word,Excel借口;
4、 无须也无法利用用户组、Functional area统一管理;
5、 无法传输。
比较而言,QUERY就比较完善了,可是做起来也比较麻烦一点:
1、 生成用户组
SAP菜单→工具→ABAP工作台→实用程序→SAP查询→用户组
T-Code:SQ03
2、 创建Functional area(功能区)
SAP菜单→工具→ABAP工作台→实用程序→SAP查询→信息集
T-Code:SQ02
3、 创建SAP Query
SAP菜单→工具→ABAP工作台→实用程序→SAP查询→查询
T-Code:SQ01
标准区域与全局区域:
标准区域(Standard Area):建立在标准区的查询往往用以满足特定用户的特定需求,因此属于Client独立(client-specific)的查询。这些查询不会连接到SAP工作台组织器(Workbench Organizer)上。
全局区域(Global Area):建立在全局区域的查询是为整个系统开发的,因此属于Client交叉(cross-client)的查询。这些查询会在SAP 工作台组织器(Workbench Organizer)上注册,可以利用正常的流程传输到其他系统中。
它们的区别是:
1、 标准区域是Client相关的,全局区域是Client无关的;
(1)在标准区域中编辑的Query,在其他Client看不到
(2)全局区域是Client无关,编辑后其他Client也可以看到,但只能在开发Client
QUERY创建过程:
1)创建功能区,也就是所谓的信息集,T_CODE为SQ02:
指定连接的基础表
点对勾,继续添加需要连接的表
设置字段
我选择的全部字段
如果在“字段组缺省值”选择中,你选择的是“包括关键字段”或者“创建空字段组”则在这个界面上,我们可以把需要的字段拖到右边的文件夹里。右边文件夹里的字段就是我们做QUERY所能用的字段。双击字段可以修改该字段的属性等。
选择完字段后,点击 按钮信息集就生成了。(上图中工具条上的连接按钮是转到表连接的界面的,”附加”按钮是增加附加表和附加字段的,附加里可以写代码。)
创建用户组,并分配用户和功能区,T_CODE为SQ03:
点击保存后分配用户
分配信息集
选中需要的信息集,点保存
创建SAP QUERY,T_CODE为SQ01:
在新建QUERY之前,选择菜单栏上的“环境”——>“查询区域”与“编辑”——>“其它用户组”依次设置QUERY的区域与用户组,设置完后开始QUERY的新建:
然后创建新QUERY
按下一步 选择字段组和字段
别忘了翻页按钮,每个组的需要的字段都选择上
进行字段设置
选择需要显示在字段
点击保存,创建完成,点执行测试:
执行即可