聲明:本文僅代表作者觀點和立場,不代表任何公司!僅用于SAP軟件應(yīng)用學(xué)習(xí)參考,文中操作截圖來源于SAP軟件,相應(yīng)著作權(quán)歸SAP公司所有。 表格控件是ABAP編程中最常用的SAP標(biāo)準(zhǔn)控件之一,通過它可以非常方便的根據(jù)用戶的操作動態(tài)對內(nèi)表數(shù)據(jù)進(jìn)行ALV格式的顯示、更改、排序等操作。簡單的說表格控件是一個雙向的數(shù)據(jù)輸入/輸出容器,它可以顯示程序內(nèi)表數(shù)據(jù),也可將用戶在表控件界面錄入數(shù)據(jù)寫回程序內(nèi)表。下面通過一個簡單的例子來初步了解下下表控件如何使用
- 讀取數(shù)據(jù)庫一個表(SPFLI)的數(shù)據(jù),將讀取數(shù)據(jù)使用表控件顯示。備注:SPFLI是SAP IDES系統(tǒng)內(nèi)已定義的存儲航空信息數(shù)據(jù)庫表,如果你的系統(tǒng)不存在這個表,可以選取任何自定義表作為系統(tǒng)操作演示使用。
2.對表控件顯示數(shù)據(jù)進(jìn)行修改,點擊保存后更新數(shù)據(jù)庫表。1.創(chuàng)建一個程序ZTABLECON(SE38)在程序中定義表控件顯示的內(nèi)表數(shù)據(jù) 這里定義的程序內(nèi)表ITAB,通過表控件顯示此內(nèi)表的內(nèi)容,表控件錄入的更新數(shù)據(jù)寫回此內(nèi)表,然后在更新到數(shù)據(jù)庫。 表控件需要放置到屏幕上,需要先創(chuàng)建一個屏幕。 點擊創(chuàng)建屏幕,進(jìn)入如下界面3.創(chuàng)建表控件(使用表控件向?qū)?chuàng)建)在上面步驟創(chuàng)建的屏幕上創(chuàng)建表控件對象 表控件名稱:ZTBL,這里名稱沒特別要求,英文字符即可。 內(nèi)表程序表:要和前面程序中定義內(nèi)表名ITAB的一致。激活屏幕后,點擊返回邏輯流 系統(tǒng)自動生成表控件的PBO和PBA邏輯流系統(tǒng)自動生成表控件的PBO和PBA邏輯流處理代碼上面步驟把放置表控件的屏幕和表控件創(chuàng)建好了。接下來在程序里面寫一個代碼,將數(shù)據(jù)庫表SPFLI的數(shù)據(jù)去取出到內(nèi)表ITAB里面,在通過表控件將內(nèi)表ITAB數(shù)據(jù)顯示處理。(如下圖) 點擊測試按鈕,顯示如下 從上圖可以看到程序已取出數(shù)據(jù)庫表SPFLI的數(shù)據(jù),并通過表控件以ALV格式顯示出來。上圖可以看到目前屏幕9000只能顯示數(shù)據(jù),不能做任何操作。為了能對顯示的數(shù)據(jù)進(jìn)行操作,比如:修改某行的數(shù)據(jù),然后點擊保存后將更改后數(shù)據(jù)保存到數(shù)據(jù)庫表。新增屏幕9000 GUI Status狀態(tài)要在屏幕9000上使用上面創(chuàng)建GUI狀態(tài),需要在屏幕的PBO邏輯流增加如下代碼
顯示如下。上圖可以看到9000屏幕的GUI狀態(tài)的2個按鈕高亮顯示出來,但是點擊它們沒有任何反應(yīng)。下面還需要對2個按鍵點擊動作寫上執(zhí)行處理代碼,要實現(xiàn)具體功能如下: 1.點擊SAVE將用戶修改后的表控件顯示的數(shù)據(jù),更新到數(shù)據(jù)庫。 處理代碼如下:MODULE USER_COMMAND_9000 INPUT. CASE SY-UCOMM. WHEN 'BACK'. LEAVE PROGRAM. WHEN 'SAVE'. MODIFY SPFLI FROM TABLE ITAB. IF SY-SUBRC NE 0. MESSAGE I005(YMESS) WITH '更新數(shù)據(jù)錯誤!'. EXIT. ELSE. MESSAGE I005(YESS) WITH '更新數(shù)據(jù)OK!'. ENDIF. ENDCASE. ENDMODULE. " USER_COMMAND_9000 INPUT 執(zhí)行程序 將第1行紅色框的修改上圖所示,讓后點擊保存,可以看到SAVE按鈕已起作用,執(zhí)行了更新數(shù)據(jù)庫操作。通過SE16N查詢數(shù)據(jù)庫表SPFLI可以看到上面表控件的修改數(shù)據(jù)已更新到數(shù)據(jù)庫表里面(如下)
|