ABAP程式示例4
*&---------------------------------------------------------------------*
*& Report ZTEST_07_ZHANGWL *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZTEST_07_ZHANGWL .
TYPE-POOLS: SLIS.
DATA: GT_FLIGHT TYPE STANDARD TABLE OF SFLIGHT.
DATA: BEGIN OF GT_FLIGHT1.
INCLUDE STRUCTURE SFLIGHT.
DATA: END OF GT_FLIGHT1.
DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
G_EXIT_CAUSED_BY_CALLER TYPE C,
GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
G_REPID TYPE SY-REPID.
DATA: GT_EVENTS TYPE SLIS_T_EVENT,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
G_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
G_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
DATA: GS_VARIANT TYPE DISVARIANT,
G_SAVE TYPE C.
INITIALIZATION.
G_REPID = SY-REPID.
GS_VARIANT-REPORT = G_REPID.
G_SAVE = 'A'.
PERFORM LAYOUT_INIT USING GS_LAYOUT.
PERFORM EVENTTAB_BUILD USING GT_EVENTS.
START-OF-SELECTION.
PERFORM SELECT_DATA TABLES GT_FLIGHT.
END-OF-SELECTION.
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
PERFORM SHOW_RESULT.
*&---------------------------------------------------------------------*
*& Form LAYOUT_INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GS_LAYOUT text
*----------------------------------------------------------------------*
FORM LAYOUT_INIT USING P_GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_GS_LAYOUT-DETAIL_POPUP = 'X'.
ENDFORM. " LAYOUT_INIT
*&---------------------------------------------------------------------*
*& Form EVENTTAB_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_EVENTS text
*----------------------------------------------------------------------*
FORM EVENTTAB_BUILD USING P_GT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_GT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
ENDIF.
READ TABLE P_GT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_GT_EVENTS.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*& Form SELECT_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_FLIGHT text
*----------------------------------------------------------------------*
FORM SELECT_DATA TABLES P_GT_FLIGHT LIKE GT_FLIGHT.
SELECT * FROM SFLIGHT
INTO CORRESPONDING FIELDS OF TABLE P_GT_FLIGHT
UP TO 000030 ROWS.
ENDFORM. " SELECT_DATA
*&---------------------------------------------------------------------*
*& Form COMMENT_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->LT_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM COMMENT_BUILD USING LT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
*
* LIST HEADING LINE: TYPE H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
* LS_LINE-KEY: NOT USED FOR THIS TYPE
LS_LINE-INFO = 'ALV 演示航班概覽'.
APPEND LS_LINE TO LT_LIST_TOP_OF_PAGE.
* STATUS LINE: TYPE S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = '有效期至'.
LS_LINE-INFO = '2007/07/30'.
APPEND LS_LINE TO LT_LIST_TOP_OF_PAGE.
LS_LINE-KEY = '機場'.
LS_LINE-INFO = 'Frankfurt'.
APPEND LS_LINE TO LT_LIST_TOP_OF_PAGE.
* ACTION LINE: TYPE A
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
* LS_LINE-KEY: NOT USED FOR THIS TYPE
LS_LINE-INFO = '當前資料'.
APPEND LS_LINE TO LT_LIST_TOP_OF_PAGE.
ENDFORM. " COMMENT_BUILD
*&---------------------------------------------------------------------*
*& Form SHOW_RESULT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* *----------------------------------------------------------------------*
FORM SHOW_RESULT .
*"Display List
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_BUFFER_ACTIVE = 'X'
I_CALLBACK_PROGRAM = G_REPID
I_STRUCTURE_NAME = 'SFLIGHT'
IS_LAYOUT = GS_LAYOUT
I_SAVE = G_SAVE
IS_VARIANT = GS_VARIANT
IT_EVENTS = GT_EVENTS[]
IMPORTING
E_EXIT_CAUSED_BY_CALLER = G_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = GS_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = GT_FLIGHT
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC = 0.
IF G_EXIT_CAUSED_BY_CALLER = 'X'.
*" Forced Exit by calling program
*"
ELSE.
*" User left list via F3, F12 or F15
IF GS_EXIT_CAUSED_BY_USER-BACK = 'X'. "F3
*"
ELSE.
IF GS_EXIT_CAUSED_BY_USER-EXIT = 'X'. "F15
*"
ELSE.
IF GS_EXIT_CAUSED_BY_USER-CANCEL = 'X'. "F12
*"
ELSE.
*" should not occur!
*"
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
*"Fatal error callin ALV
* MESSAGE AXXX(XY) WITH ...
ENDIF.
ENDFORM. " SHOW_RESULT
*&---------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* *----------------------------------------------------------------------*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE
* I_LOGO =
* I_END_OF_LIST_GRID =
.
ENDFORM.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8356764/viewspace-929420/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用ABAP程式碼建立S/4HANA裡的Sales Order
- 如何使用 ABAP 程式消費 SAP ABAP OData 服務
- 排序程式碼示例排序
- RabbitMQ 程式碼示例MQ
- 用ABAP程式碼讀取S/4HANA生產訂單工序明細
- 使用ABAP程式碼返回S/4HANA Material上維護的Attachment明細
- typescript openai gtp-4o 示例TypeScriptOpenAI
- ABAP初學者如何系統地學習ABAP程式設計?程式設計
- SAP ABAP 程式之間的呼叫
- Java NIO 程式碼示例Java
- QRust(四)示例程式Rust
- java SPI 程式碼示例Java
- 如何使用ABAP程式碼反序列化JSON字串成ABAP結構JSON字串
- 在SAP雲平臺ABAP程式設計環境上編寫第一段ABAP程式程式設計
- 一些通過SAP ABAP程式碼審查得出的ABAP程式設計最佳實踐程式設計
- 視窗程式框架示例程式碼框架
- Kafka 1.0.0 d程式碼示例Kafka
- Java NIO程式設計示例Java程式設計
- 靜態代理程式碼示例
- OceanBase學習之路4|SpringBoot 連線示例Spring Boot
- 通過ABAP程式碼判斷當前系統型別,BYD還是S4 OP還是S4 Cloud型別Cloud
- ABAP面試題系列:寫一組會出現死鎖(Deadlock)的ABAP程式面試題
- ABAP程式碼分析工具 - 事務碼SQF
- 如何使用ABAP程式碼建立SAP Product CategoryGo
- 使用 Prometheus 監控 SAP ABAP 應用程式Prometheus
- 如何使用 ABAP 程式碼解析 XML 檔案XML
- SAP ABAP關鍵字語法圖和ABAP程式碼自動生成工具Code Composer
- Gulp4 Koa專案簡單配置示例
- MapReduce 程式設計模型 & WordCount 示例程式設計模型
- Windows守護程式簡單示例Windows
- RSA加密解密示例程式碼加密解密
- pytorch程式碼示例筆記 -- AutogradPyTorch筆記
- js程式碼與html程式碼分離示例JSHTML
- 如何用程式碼動態生成ABAP型別型別
- 使用ABAP程式碼生成二維碼(QR Code)
- SAP ABAP 平臺新的程式設計模型程式設計模型
- 零基礎快速學習 ABAP之一:ABAP 伺服器的架構和一個典型的 ABAP 程式結構介紹伺服器架構
- 介紹一款 ABAP 程式碼搜尋工具 RS_ABAP_SOURCE_SCAN 的使用方法
- 使用 ABAP 程式語言直接執行 ABAP 伺服器所在作業系統的 shell 命令伺服器作業系統