基本概念
QUERY是SAP的一项简单报表工具,它可为没有编程基础的用户用来生成简单的报表。它
有图形化的界面,你可在上面托托拽拽,然后就可以见到你要的报表,可是这只是简单的应
用,其实每个工具功能都是比较完善的,QUERY也不例外。
1.生成用户组
SAP菜单→工具→ABAP工作台→实用程序→SAP查询→用户组
T-Code:SQ03
2。创建Functionalarea(功能区)
SAP菜单→工具→ABAP工作台→实用程序→SAP查询→信息集
T-Code:SQ02
3。创建SAPQuery
SAP菜单→工具→ABAP工作台→实用程序→SAP查询→查询
T-Code:SQ01
2.这些组件之间的关系有:
1。Query的管理包括建立Functionalarea(功能区)和UrGroup(用户组),并将功能区
分配到相应的用户组中去。
2。Functionalarea(功能区)中定义query中需引用的表和字段。
3。只有当一个用户属于至少一个用户组才可以创建、运行Queries。一个用户可以属于几个
用户组。用户组中的用户享有相同的权力。
4。当Functionalarea(功能区)分配给了某用户组,该用户组的成员即可以访问此功能区。
5。一个Functionalarea(功能区)可以分配给多个用户组;多个Functionalarea(功能区)
可以分配给一个用户组。
6。Queries通常为特定的用户组和特定的功能区而建立。这个用户组的用户可以访问所有分
配给这个用户组的Queries。
3.还有一点值得注意,在QUERY的管理时,有这样的概念:
标准区(StandardArea):建立在标准区的查询往往用以满足特定用户的特定需求,因
此属于Client独立(client-specific)的查询。这些查询不会连接到SAP工作台组织器
(WorkbenchOrganizer)上。
全局区域(GlobalArea):建立在全局区域的查询是为整个系统开发的,因此属于Client
交叉(cross-client)的查询。这些查询会在SAP工作台组织器(WorkbenchOrganizer)上注
册,可以利用正常的流程传输到其他系统中。
这里提到的标准区的INFOSET,就是指QUICKVIWER中的一个数据源InfoSet(信息集),
而全局区域的InfoSet是不支持QUICKVIWER的。
操作步骤
1.建立用户组
截此为止,SQ03的工作已完成。
下一步:SQ02
这里有几个选项,我们常用的一般是前3项。
在这里我们想做一个基于航班及其计划的报表(可能要很多报表,而不是一个),
我们需要建立这样一个信息集,能够包含所出报表的各种信息,而这些信息可能来自多个表
格。
基础表格连接方式:
在“使用基础表进行表连接”输入一个表格SPFLI(航班及计划涉及到2个表,SPFLI和
SFLIGHT),涉及到的其它表格,我们在进入后续界面能够加进去。
添加新表后,系统会自动判断表之间的联系,用线联系起来,当然,如果有些联系不正确,
我们可以右键删除。
如果要添加连接(也就是2个表的关联字段),则可以拖动一个表的字段到另外一个表的字
段上,中间的连接线就自动出现了。
出现如下窗口
选项1:系统将把所有表的字段放到信息集里
选项2:系统将把表的关键字段放到信息集里
选项3:自定义字段
我们选择创建空字段组
在屏幕左侧出现的是表,右侧是字段组,我们根据需要建立自己的字段组,可以删除也可以
改名,右键功能即可操作。我们将建立一个字段组名为“航班”
在做Query时,我们很容易遇到添加报表显示列的情况,无论是文本还是数字。就这个例子
来讲,我们将添加一个“剩余座位”字段,单击“附加”按钮
在这个屏幕里,有几个选项,对于应用顾问来讲,我们通常选择附加字段。
因为如果附加表格会用到相对比较多的代码,对于不熟悉ABAP语言的人并不合适。
然后保存代码
并检查。
然后按后退按钮,根据提示保存并生成功能区。
然后单击角色/用户组分配
选择开始建立的用户组,然后保存
然后进入SQ01建立查询
会出现如下屏幕
选择您配置的信息集。
如果界面中没有出现您刚做过的信息集,那需要用SQ03进入,填入信息集对应的用户组,
然后回到SQ01中创建查询,这个屏幕里就会出现您刚做过的信息集了。或者通过
来实现显示有权的查询。
然后单击“基本清单”
在左侧,有字段清单和选择字段2列,众所周知,报表是要有选择条件和输出列的,
选择条件就是选择字段,输出列就是字段清单。这里单击区分先后顺序,先单击的出现在前
面,后单击的出现在后面。你可以自己做一下测试。
操作后,可以保存。
然后退出程序返回SQ01界面,按F8执行此报表。
截此为止,最简单的Query就做完了。
ALV输出是我们最常用的方式,它不仅灵活而且拥有保存变式、小计、汇总等多种功能,
例如我们对同一航线承运人ID、起飞机场、目的机场进行座位小计,效果如下
当然我们可以针对这种格式保存为变式,下次进来时直接用这种方式
下次进来后,可以选择曾经保存的格式,也可以设为默认格式。这种小计及合计功能,我们
也可以在制作Query时来实现。如下图
使用逻辑数据库
简单的讲,逻辑数据库就是系统在特定的业务里,自动关联一些表,我们可以直接使用其中
的各种子段而无需考虑其逻辑关联关系。在SQ02新建的界面里,我们选择PNPCE这个逻
辑数库,它代表HR主数据,如果HR主数据里包含表格PA0001,PA0002,PA0014,„„这
些表,我们完全可以不用自己关联这些表格,直接使用PNPCE即可。在F4菜单中,我们
可以去选择系统内所有的逻辑数据库,用事物代码SLDB去查看逻辑数据库的帮助。如果
这个逻辑数据库有选择屏幕版本,则在F4菜单中就会有选项,例如PNP就会有000和900
两个屏幕
我们选择PNPCE
PNPCE包括的信息类型如上,我们可以选择我们需要的类型,例如组织分配和个人数据。
进入维护界面后,就和表关联一样了,可以参考blog上半部分。
在这里,我们可能经常遇到下面的错误:
一个窗口里有很多红色标记的字段,那代表相应的结构里字段的描述为空,我们可以用EN
登陆,来做这个查询,然后再返回中文使用。
上图的这种情况就可能会出现错误,进入EN,这里就会有描述。(注:这种情况,我做了
几次测试,第一次做时肯定会出现错误,但是用EN登陆做了之后,别的结构如有空项,也
不再报错了)
对于熟悉ABAP语言的应用顾问,也可以创建自定义的选择屏幕元素,在SQ02->属性界面
里,有个选择项,这里可以创建自定义的选择。然后在代码部分写检查代码。
特别注释:ALV的格式管理功能,是我们在使用Query时最常用的,用户可以自定义自己
的报表样式,也可以设置全局变式及默认设置。
本文来自CSDN博客,转载请标明出处:
/own_delphi/archive/2009/11/08/
本文发布于:2023-01-04 14:45:05,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/91199.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |