国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ABAP數據字典和數據表的讀取

2019-11-10 18:06:21
字體:
來源:轉載
供稿:網友
  ABAP數據字典的事務代碼(TCODE):SE11,數據字典和SAP整個業務應用是整合的。      本章主要介紹:實例建表,數據表維護程序,添加數據,建立域、數據元素和搜索幫助,邏輯數據庫,數據表的讀取。

相關概念

       通過本章的學習能清晰地了解ABAP數據字典與實際數據庫之間的關系。數據字典對象由數據字段(Table Field)、數據元素(Data Element)、域(Domain)等組成。     “域”描述一個字段類型和長度等信息,“數據元素”描述一個字段的用途。先定義域,再定義數據元素使用哪個域,最后定義一個表字段使用哪些數據元素。      表類型:透明表(Transparent Table)、結構(Structure)、附加結構(Append Structure)、存儲表(Pooled Table)、簇表(Cluster Table)、視圖(Generated View Structure)。      在ABAP應用中大量使用透明表和結構,其中:“透明表”在數據庫中有對應的物理表;“結構”為若干個字段組合,在數據庫不存在數據紀錄。

實例建表

下面以實例說明透明表的建立。建立城市表、學校表、學生表,表關系都是一對多,數據結構如下:

        (1)城市表:YTJAYCITY,結構如下

字段名數據類型允許空值主/外鍵說明
YCT_IDINTNOT NULL(PK)序號
YCT_NAMECHAR(30)NOT NULL 城市名稱
YCT_COUNTRYCHAR(255)  國家名稱

        (2)學校表:YTJAYSCHOOL,結構如下

字段名數據類型允許空值主/外鍵說明
YCT_IDINTNOT NULL(PK)序號
YSH_IDINTNOT NULL(PK)學校序號
YSH_NAMECHAR(30)NOT NULL 學校名稱
YSH_ADDRCHAR(255)  地址

        (3)學生表:YTJAYSTUDENT,結構如下

字段名數據類型允許空值主/外鍵說明
YCT_IDINTNOT NULL(PK)城市序號
YSH_IDINTNOT NULL(PK)學校序號
YSTU_IDINTNOT NULL(PK)學生序號
YSTU_NAMECHAR(30)  學生名稱
YSTU_ADDRCHAR(255)  住址

輸入TCODE:SE11,回車

輸入數據庫表,單擊“創建”按鈕

在屬性頁輸入短文本、選擇類型”A“(應用表),選擇“X 允許通過標準表格維護工具維護”

選擇“Fields”頁面,單擊按鈕,直接輸入數據類型和長度

點擊“保存”按鈕,彈出“創建對象目錄條目”對話框,點擊“本地對象”按鈕

保存完成之后,點擊“技術設置”,定義“數據類”、“大小范疇”

單擊“返回”按鈕,退回到字段編輯頁面,單擊激活按鈕激活數據表。

然后依次建立YTJAYSCHOOL、YTJAYSTUDENT表。數據表建立完成后,可以登錄數據庫查閱建立的透明表。

注意:(1)在SAP中建立的數據表會在數據庫中創建;(2)在數據庫中直接建立的表不會在SAP中有數據字典;(3)在SAP或數據庫添加數據都能相互查閱到。有了這樣的概念,完全可以用其他語言讀取數據庫數據,做報表、開發等工作。

 

相關數據維護程序

由于在剛才建表時,選擇了,因此能直接進行數據維護。

輸入TCODE:SE16

輸入表名

新增數據

點擊如下“新增”按鈕

輸入完成后保存,在連續添加記錄后,單擊返回按鈕回到上一屏

查詢數據

點擊如下“表內容”按鈕

輸入查詢條件,點擊“執行”按鈕

查詢結果如下:

刪除數據

菜單“表條目”下,“全部刪除”、“刪除”按鈕可以刪除選中的紀錄

修改數據

點擊如下“更改”按鈕,可以對選中的紀錄進行編輯、修改操作

數據批量維護程序的生成及使用

打開表結構維護界面后(SE11),選擇菜單“實用程序”-->“表格維護生成器”

輸入函數組名稱,選擇一個權限組,選擇維護類型“一步”,單擊左上角“查找屏幕號”按鈕

選擇“建議屏幕號”

處理完成后,單擊左上角“新建”按鈕

彈出“修改對象目錄條目”對話框,點擊“保存”按鈕,此時左下角如果彈出“請選擇包”,則再次點擊“保存”按鈕

此時單擊“本地對象”按鈕,此時將會生成環境,有幾秒的時間

此時回到主界面,輸入“/nSM30”維護數據

輸入表/視圖名稱,單擊“維護”按鈕

此時彈出對話框,確認

該界面可以對表格數據進行批量維護

建立域、數據元素和搜索幫助

本節介紹建立城市序號和城市名稱的域和數據元素,并建立搜索幫助。搜索幫助是SAP系統中最常見的技術之一,是非常重要的。

建立域

 輸入TCODE:SE11,選擇“域”,輸入域名稱,單擊“創建”按鈕

輸入域類型、域長度等信息后點擊“保存”按鈕

點擊“本地對象”按鈕,然后再點擊“激活”按鈕

同樣方法再建立城市名稱域,此處略。

建立數據元素

選擇“數據類型”選項,輸入名稱后,單擊“創建”

選擇“Data element”類型

選擇已經建立的域名

選擇“Field Label”頁面,輸入描述長度和描述,單擊“保存”按鈕,再點擊“本地對象”按鈕,最后點擊“激活”按鈕

同樣方法再建立城市名稱數據元素,此處略。

修改表結構使用數據元素

選擇YTJAYCITY數據表,點擊“修改”按鈕,進入結構維護界面

單擊“數據元素”按鈕,選擇剛剛建立的數據元素,保存之后,再激活

同樣方法再修改學校表

建立搜索幫助

打開數據元素YDAJAY_CITYID,輸入“Search Help”名稱后,保存

雙擊“Search Help”名稱輸入框,啟動設計界面,點擊“是”按鈕

選擇“基本索引幫助”

輸入描述,選擇城市表、城市序號和名稱,其中城市序號為輸入、輸出字段,雙擊YCT_NAME,建立城市名稱參數

返回上一界面,輸入參數“YCT_ID”,保存并激活這個數據元素

再用SE16打開城市表,就可以通過“搜索幫助”選擇城市

邏輯數據庫

邏輯數據庫是由具有一定關系的表組成,預選設定了讀取數據的方法。

數據庫讀取

讀取數據表是編程中最基本的技能,不同的數據庫(Oracle,Sql Server,Sybase,DB2等)提供的SQL語法不完全相同。SAP提供了一套SQL語法(Open SQL),在SAP應用中能通過這一套SQL語法處理SAP支持的數據庫。另外,SAP也提供Native SQL(本地的SQL語句),處理數據庫本身的SQL語法。SAP的SQL語法和標準的SQL很接近,由SELECT、INSERT、DELETE、UPDATE等常用語法組成。

 

基礎的讀取數據表例子

將介紹數據庫讀取的幾種方法和步驟:(1)從數據表直接讀取數據至工作區輸出(2)從數據表讀取數據至內表,再從內表輸出(3)從內表逐行讀取數據至工作區,從工作區輸出

[plain] view plain copy 在CODE上查看代碼片REPORT  YTEST20160527.  *定義工作區  DATA A_YTJAYCITY TYPE YTJAYCITY.  *定義內表,請注意有HEADER LINE  DATA TA_YTJAYCITY TYPE TABLE OF YTJAYCITY WITH HEADER LINE.  *分隔線  ULINE.  WRITE / '使用工作區'.  ULINE.  *將數據表逐行轉移至工作區,只讀首3行  SELECT * INTO CORRESPONDING FIELDS OF A_YTJAYCITY FROM YTJAYCITY UP TO 3 ROWS.    WRITE: / A_YTJAYCITY-YCT_ID, A_YTJAYCITY-YCT_NAME, A_YTJAYCITY-YCT_COUNTRY.  ENDSELECT.  ULINE.  WRITE / '使用內表'.  ULINE.  SELECT * INTO CORRESPONDING FIELDS OF TABLE TA_YTJAYCITY FROM YTJAYCITY UP TO 3 ROWS.  *從數據表讀數據至內表,直接從內表輸出  *如果TA_YTJAYCITY沒有定義HEADER LINE,會出錯  LOOP AT TA_YTJAYCITY.    WRITE :/ TA_YTJAYCITY-YCT_ID,TA_YTJAYCITY-YCT_NAME,TA_YTJAYCITY-YCT_COUNTRY.  ENDLOOP.  ULINE.  WRITE / '將內表數據轉移至工作區'.  ULINE.  LOOP AT TA_YTJAYCITY INTO A_YTJAYCITY.    WRITE :/ A_YTJAYCITY-YCT_ID, A_YTJAYCITY-YCT_NAME, A_YTJAYCITY-YCT_COUNTRY.  ENDLOOP.  

輸出結果

使用PACKAGE SIZE讀取數據

上面的例子中,使用了UP TO 3 ROWS語法讀取前3行,但是不能繼續讀取數據。使用PACKAGE SIZE可以一次讀入幾條記錄,下面例子中有ENDSELECT語句,表示讀取2條紀錄后接著讀取2條記錄。

[plain] view plain copy 在CODE上查看代碼片REPORT  YTEST20160527.  *定義內表有HEADER LINE  DATA WA_YTJAYCITY TYPE TABLE OF YTJAYCITY WITH HEADER LINE.  *以每次讀取2條紀錄,直到讀取所有數據  SELECT * INTO TABLE WA_YTJAYCITY FROM YTJAYCITY PACKAGE SIZE 2.  *輸出內表紀錄    LOOP AT WA_YTJAYCITY.      WRITE :/ WA_YTJAYCITY-YCT_ID, WA_YTJAYCITY-YCT_NAME, WA_YTJAYCITY-YCT_COUNTRY.    ENDLOOP.  *輸出2條后輸出一條橫線    ULINE.  ENDSELECT.  

輸出結果

內連接和外連接

從兩個或兩個以上數據表直接讀取數據時,需要使用內表連接和外連接語句。

[plain] view plain copy 在CODE上查看代碼片REPORT  YTEST20160527.  *定義結構  DATA:BEGIN OF SCHOOL,    CITY TYPE YTJAYCITY-YCT_NAME,    NO TYPE YTJAYSCHOOL-YSH_ID,    NAME TYPE YTJAYSCHOOL-YSH_NAME,    ADDRESS TYPE YTJAYSCHOOL-YSH_ADDR,  END OF SCHOOL.  *工作區  DATA SCHOOL1 LIKE SCHOOL.  *關聯數據表,讀取前3條記錄,寫入工作區,并輸出  SELECT YTJAYCITY~YCT_NAME YTJAYSCHOOL~YSH_ID YTJAYSCHOOL~YSH_NAME YTJAYSCHOOL~YSH_ADDR INTO SCHOOL1    FROM YTJAYSCHOOL    INNER JOIN YTJAYCITY ON YTJAYSCHOOL~YCT_ID = YTJAYCITY~YCT_ID    UP TO 3 ROWS.    WRITE: / SCHOOL1-CITY, SCHOOL1-NO, SCHOOL1-NAME, SCHOOL1-ADDRESS.  ENDSELECT.  

輸出結果

原文來自:http://blog.csdn.net/Jay_1989/article/details/51537483?locationNum=4&fps=1


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永兴县| 吴忠市| 天祝| 九江市| 临安市| 福鼎市| 许昌县| 梁山县| 玉田县| 凤庆县| 山阴县| 邹城市| 黔西县| 泰安市| 云梦县| 海南省| 开平市| 阳江市| 汶川县| 泌阳县| 静宁县| 龙游县| 敦化市| 军事| 嘉鱼县| 榕江县| 石家庄市| 贵德县| 拜泉县| 平顺县| 上虞市| 修水县| 凤城市| 贵德县| 高平市| 甘孜县| 伊吾县| 兴城市| 嘉祥县| 遂溪县| 钟祥市|