How to Create a Query

How to Create a Query
How to Create a Query

iMYANG Growing with you
How to create a Query
How to create a Query
Alex.Yang(杨运华)
SAP Helpdesk
Release 1.0
2009 https://www.360docs.net/doc/601045311.html,
Page 1 of 17

iMYANG Growing with you
How to create a Query
我们为什么要会 Query,其实我认为作为一个顾问,一个系统支持者这是必备的技能, 一来可以减少程序员的辛苦,你要知道写一个最简单的 ALV,包括那些定义也要个一百行左右, 所以一个简单的从一两个表里面拿数据的 ALV 报表也让程序员去写个程式,这样太大才小用了 吧,我们完全可以自己动手,二来也可以让自己也多一种技能,这样可能让自己在面试的时候多 一份自信。很多人认为作 Query 是程序员的事情;Query 也是个图形化的工具,没有一点 ABAP 的人也可以作,所以我认为 Query 是每个 SAP 从业者必备的技能,不管你是顾问还是 ABAPer, 都是需要掌握的技能之一。 建立一个 Query 有两种途径第一种是通过建立一个 InfoSet 再去建立一个 VIEW,这就是 SQ01,另外一种是直接建立一个 VIEW,这是 SQVI, 由于 SQ01 其实与 SQVI 大同小异,所以如果讲完了 SQVI 后,SQ01 大致是一样的,这里只作一 个入门级的介绍,Query 的功能其实也是很强大的,他在里面也可以加代码,作汇总,过滤等一 系统的强大功能,所以一定不要小瞧这个小小的 Query。 这里提供一个 Query Help Link: https://www.360docs.net/doc/601045311.html,/saphelp_erp2005/helpdata/EN/d2/cb3efb455611d189710000e8322d00/frameset.htm Step 1. Go to Query Interface. Path: Tools -> ABAP Workbench -> Utilities -> SQVI - Quick Viewer. Transaction Code: SQVI.
2009 https://www.360docs.net/doc/601045311.html,
Page 2 of 17

iMYANG Growing with you
How to create a Query
我们其实看我用红线区分出来的左右介面, 左边是一个简单的向导,右边是介面一些 Button,也就是这些 Button 成就了 Query Query 的名称 如果你有建立一个 Query 可以点这个 Button 去修改 建立一个新的 Query,当你有输入一个新的 Query 时 跳转到 SQ01 当你建立好了这个 Query 你可以点这个按钮去执行 显示这个 Query 这个 Query 的描述 复制一个 Query 重命名 Query 到另外一个名称 删除 Query 显示格局 在 Variant 下执行 Query 在后台执行 Query 指运行 ALV 后所保存过的 List,可以通过它来调出来
2009 https://www.360docs.net/doc/601045311.html,
Page 3 of 17

iMYANG Growing with you
How to create a Query
Step 2 .Create a Query. Input the Query name and Click 'Create' button to create a Query.
Step 3.Enter the Title and Comments
大家可以看到在 Data source 中有四个选择, 1. Logical database 是指逻辑数据库中取数据, 2. SAP Query Infoset 指 SQ01 建立的 Infoset 取数据, 3. Table 指从一个表中取数据 4. Table Join 指通过表连接来取得数据,这里以 Table Join 为例进入系统. 这里我们找的是 Customer 的 E-mail ,查询 Customer 的基本数据. 单击'Insert Table'添加 Table : KNA1 和 ADR6.
2009 https://www.360docs.net/doc/601045311.html,
Page 4 of 17

iMYANG Growing with you
How to create a Query
系统一般情况下会自动加一个连接,但是 98%错的,所以这个时候你需要右击把他移除掉, 通过拖拉自已重新加上,你可以通过右击连接线单击'Display Join Condition'去显示两个表的连接 关系。 并单击 Continue 返回.
2009 https://www.360docs.net/doc/601045311.html,
Page 5 of 17

iMYANG Growing with you
How to create a Query
Alias Table :SAP 官方的解释是 Multiple Additional Table Assignments (Alias Tables) The procedure described above allows you link a table to an InfoSet as an additional table exactly once. Whenever you attempt to link the table a second time as an additional table you receive an error message informing you that the table may only be used once. The following example demonstrates, however, that multiple linking of a table may be useful.
简单说是定义一个别名表,在连接其它表时可以被多次使用。 由于我这里只是两个表的相连接,所以不需要定义,如果你不止这两个表,你有三个四个表,你 可能会用到一个表去连接多个表,这个时候你需要定义 Alias Table.
Step 4.Design layout & selection field. 在这个介面你可以过过工具栏上的 Basis Mode 切换到另外一个 Layout Mode Screen 介面,加一些 排序的功能等。 显示在 ALV 上的 Fields.
2009 https://www.360docs.net/doc/601045311.html,
Page 6 of 17

iMYANG Growing with you
How to create a Query
排序的 Field,
2009 https://www.360docs.net/doc/601045311.html,
Page 7 of 17

iMYANG Growing with you
How to create a Query
开始选择的 Screen Fields.
你也可以单击打开 Table 来选择那些 Fields 是 Selection 或者 List Field
你可以通过红色框中的按钮来排列 Fields 的输出顺序,输出 Fields. 2009 https://www.360docs.net/doc/601045311.html,
Page 8 of 17

iMYANG Growing with you
How to create a Query
由于Query也是一个图形化的工具,所以你可以通过鼠标来拖动,设计你的排版格局。 你可以插入表头,各行加颜色,选择汇总等,还可以选择一些sort fields.总之应有尽有, 只要你能想到的,Query大部份能做到.
Step 5.Execute Program 2009 https://www.360docs.net/doc/601045311.html,
Page 9 of 17

iMYANG Growing with you
How to create a Query
当你这一切都设计好了,你可以单击' 你可以通过这里去保存一个Variant,SQVI中有
去执行这个Query. 就是从这里得来的。
ALV list View. 2009 https://www.360docs.net/doc/601045311.html,
Page 10 of 17

iMYANG Growing with you
How to create a Query
Step 6.Generate Program & Create Transaction Code
回到SQVI的初始介面.让系统产生一个程序名 Path: Menu -> QuckView -> Additional functions -> Generate program. 产生程序名很快,所以你并不知道是什么名称,这个时候你可以通过Display report name查看.
2009 https://www.360docs.net/doc/601045311.html,
Page 11 of 17

iMYANG Growing with you
How to create a Query
我们去用SE38去看一下. 再通过Create Transaction 去建立一个TCODE.
这个时候就和平时建立 TCODE 是一样的了.
2009 https://www.360docs.net/doc/601045311.html,
Page 12 of 17

iMYANG Growing with you
How to create a Query
Step 7.Created and 'SAVE'
Step 8. 在SE38 初始介面输入 /nzQuery 并回车.
2009 https://www.360docs.net/doc/601045311.html,
Page 13 of 17

iMYANG Growing with you
How to create a Query
Run Success.
由于Qucik Viewer所生志的报表是用户自定义的报表,只能由自己来维护。 不可以利用用户组来管理权限
SQ01 其实与SQVI差不多,主要是于SQ01可以传输到PRD。而SQ01可以做到这些, 2009 https://www.360docs.net/doc/601045311.html,
Page 14 of 17

iMYANG Growing with you
How to create a Query
他可以自己去定义一些Query Areas ,Infosets ,User Group.等,
但在用SQ01比较麻烦的是你需要选择Infoset 去做.这里我就做一些简单的。 后面的建立Query 和SQVI类似. Step 1. Create Query Areas. Path:Menu -> Environment -> Query Areas. 选择第一个Standard area (Client -Specific).Global area指的是交叉端口.
在这里可以输入Query area 的名称然后建立.
2009 https://www.360docs.net/doc/601045311.html,
Page 15 of 17

iMYANG Growing with you
How to create a Query
Step 2.Create User Group.
可以通过'
这个Button去分配User 和 Infoset.
2009 https://www.360docs.net/doc/601045311.html,
Page 16 of 17

iMYANG Growing with you
How to create a Query
Step 3. Create Infoset. 可以通过 去分配Role 和 User Group.
SQ01就是通过一层一层的这样指定的关系来达到分配权限和Group 的控制,这也和SAP的理念 有点类似。
Step 4. Create a Query. 这里就和SQVI 差不多了,选择你需要的Infoset 或者Table,然后一步一步的去建立。
我在网上找到一本有关Query 的书,全英文的,大家可以参考这个看看,非常详细! 说的面面俱到! https://www.360docs.net/doc/601045311.html,/viewthread.php?tid=788001&extra=&page=1
The End !
2009 https://www.360docs.net/doc/601045311.html,
Page 17 of 17

相关主题
相关文档
最新文档