文章轉自 http://blog.csdn.net/gu_gj/article/details/7522975
基本概念
QUERY是SAP的一項簡單報表工具,它可爲沒有編程基礎的用戶用來生成簡單的報表。它有圖形化的界面,你可在上面託託拽拽,然後就可以見到你要的報表,可是這只是簡單的應用,其實每個工具功能都是比較完善的,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項。
在這裏我們想做一個基於航班及其計劃的報表(可能要很多報表,而不是一個),
我們需要建立這樣一個信息集,能夠包含所出報表的各種信息,而這些信息可能來自多個表格。
基礎表格連接方式:
添加新表後,系統會自動判斷表之間的聯繫,用線聯繫起來,當然,如果有些聯繫不正確,我們可以右鍵刪除。
如果要添加連接(也就是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登陸做了之後,別的結構如有空項,也不再報錯了)
對於熟悉ABAP語言的應用顧問,也可以創建自定義的選擇屏幕元素,在SQ02->屬性界面裏,有個選擇項,這裏可以創建自定義的選擇。然後在代碼部分寫檢查代碼。
特別註釋:ALV的格式管理功能,是我們在使用Query時最常用的,用戶可以自定義自己的報表樣式,也可以設置全局變式及默認設置。
來源:http://www.cnblogs.com/elegantok/archive/2009/09/22/1572036.html