Query 操作手册 (新增逻辑数据库)

基本概念

QUERYSAP的一项简单报表工具,它可为没有编程基础的用户用来生成简单的报表。它有图形化的界面,你可在上面托托拽拽,然后就可以见到你要的报表,可是这只是简单的应用,其实每个工具功能都是比较完善的,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

2. 这些组件之间的关系有:
1
Query的管理包括建立Functional area(功能区)和User Group(用户组),并将功能区分配到相应的用户组中去。
2
Functional area(功能区)中定义query中需引用的表和字段。
3
。只有当一个用户属于至少一个用户组才可以创建、运行Queries。一个用户可以属于几个用户组。用户组中的用户享有相同的权力。
4
。当Functional area(功能区)分配给了某用户组,该用户组的成员即可以访问此功能区。
5。一个Functional area(功能区)可以分配给多个用户组;多个Functional area(功能区)可以分配给一个用户组。
6
Queries通常为特定的用户组和特定的功能区而建立。这个用户组的用户可以访问所有分配给这个用户组的Queries

3. 还有一点值得注意,在QUERY的管理时,有这样的概念:
  标准区(Standard Area): 建立在标准区的查询往往用以满足特定用户的特定需求,因此属于Client独立(client-specific)的查询。这些查询不会连接到SAP工作台组织器(Workbench Organizer)上。
  全局区域(Global Area): 建立在全局区域的查询是为整个系统开发的,因此属于Client交叉(cross-client)的查询。这些查询会在SAP 工作台组织器(Workbench Organizer)上注册,可以利用正常的流程传输到其他系统中。

这里提到的标准区的INFOSET,就是指QUICKVIWER中的一个数据源InfoSet(信息集),而全局区域的InfoSet是不支持QUICKVIWER的。

操作步骤

1.       建立用户组

 

截此为止,SQ03的工作已完成。

下一步: SQ02

这里有几个选项,我们常用的一般是前3项。

在这里我们想做一个基于航班及其计划的报表(可能要很多报表,而不是一个),

我们需要建立这样一个信息集,能够包含所出报表的各种信息,而这些信息可能来自多个表格。

基础表格连接方式:

在“使用基础表进行表连接”输入一个表格SPFLI(航班及计划涉及到2个表,SPFLISFLIGHT ),涉及到的其它表格,我们在进入后续界面能够加进去。

 

 

添加新表后,系统会自动判断表之间的联系,用线联系起来,当然,如果有些联系不正确,我们可以右键删除。

如果要添加连接(也就是2个表的关联字段),则可以拖动一个表的字段到另外一个表的字段上,中间的连接线就自动出现了。

出现如下窗口

选项1:系统将把所有表的字段放到信息集里

选项2:系统将把表的关键字段放到信息集里

选项3:自定义字段

我们选择创建空字段组

在屏幕左侧出现的是表,右侧是字段组,我们根据需要建立自己的字段组,可以删除也可以改名,右键功能即可操作。我们将建立一个字段组名为“航班”

在做Query时,我们很容易遇到添加报表显示列的情况,无论是文本还是数字。就这个例子来讲,我们将添加一个“剩余座位”字段,单击“附加”按钮

 

在这个屏幕里,有几个选项,对于应用顾问来讲,我们通常选择附加字段。

因为如果附加表格会用到相对比较多的代码,对于不熟悉ABAP语言的人并不合适。

然后保存代码

并检查。

 

然后按后退按钮,根据提示保存并生成功能区。

然后单击 角色/用户组分配

选择开始建立的用户组,然后保存

然后进入SQ01建立查询

会出现如下屏幕

 

选择您配置的信息集。

如果界面中没有出现您刚做过的信息集,那需要用SQ03进入,填入信息集对应的用户组,然后回到SQ01中创建查询,这个屏幕里就会出现您刚做过的信息集了。或者通过

 

来实现显示有权的查询。

 

然后单击“基本清单”

 

在左侧,有字段清单和选择字段2列,众所周知,报表是要有选择条件和输出列的,

选择条件就是选择字段,输出列就是字段清单。这里单击区分先后顺序,先单击的出现在前面,后单击的出现在后面。你可以自己做一下测试。

操作后,可以保存。

然后退出程序返回SQ01界面,按F8执行此报表。

截此为止,最简单的Query就做完了。

 

 

ALV 输出是我们最常用的方式,它不仅灵活而且拥有保存变式、小计、汇总等多种功能,例如我们对同一航线承运人ID、起飞机场、目的机场进行座位小计,效果如下

 

当然我们可以针对这种格式保存为变式,下次进来时直接用这种方式

下次进来后,可以选择曾经保存的格式,也可以设为默认格式。这种小计及合计功能,我们也可以在制作Query时来实现。如下图

 

使用逻辑数据库

简单的讲,逻辑数据库就是系统在特定的业务里,自动关联一些表,我们可以直接使用其中的各种子段而无需考虑其逻辑关联关系。在SQ02新建的界面里,我们选择PNPCE这个逻辑数库,它代表HR主数据,如果HR主数据里包含表格PA0001PA0002,PA0014,……这些表,我们完全可以不用自己关联这些表格,直接使用PNPCE即可。在F4菜单中,我们可以去选择系统内所有的逻辑数据库,用事物代码SLDB去查看逻辑数据库的帮助。如果这个逻辑数据库有选择屏幕版本,则在F4菜单中就会有选项,例如PNP就会有 000 900 两个屏幕

 

 

我们选择PNPCE

 

 

 

 

PNPCE包括的信息类型如上,我们可以选择我们需要的类型,例如组织分配和个人数据。

 

进入维护界面后,就和表关联一样了,可以参考blog上半部分。

在这里,我们可能经常遇到下面的错误:

一个窗口里有很多红色标记的字段,那代表相应的结构里字段的描述为空,我们可以用EN 登陆,来做这个查询,然后再返回中文使用。
 
 

上图的这种情况就可能会出现错误,进入EN,这里就会有描述。(注:这种情况,我做了几次测试,第一次做时肯定会出现错误,但是用EN登陆做了之后,别的结构如有空项,也不再报错了)

对于熟悉ABAP语言的应用顾问,也可以创建自定义的选择屏幕元素,在SQ02->属性界面里,有个选择项,这里可以创建自定义的选择。然后在代码部分写检查代码。

 

 

特别注释:ALV的格式管理功能,是我们在使用Query时最常用的,用户可以自定义自己的报表样式,也可以设置全局变式及默认设置。

posted @ 2009-09-22 18:42  elegant  阅读(2051)  评论(0编辑  收藏  举报