ABAP实现ALV表头的DEMO:

效果:

源代码:

 *&---------------------------------------------------------------------*
*& Report Z_ALV_DEMO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT Z_ALV_DEMO NO STANDARD PAGE HEADING. TABLES ZEMP_TEST. DATA: IT_ZEMP TYPE STANDARD TABLE OF ZEMP_TEST,
IW_ZEMP TYPE ZEMP_TEST. TYPE-POOLS : SLIS.
DATA :
IT_EVENT TYPE SLIS_T_EVENT, "不能有表头,否则会RUNTIME ERROR
IT_LISTHEADER TYPE SLIS_T_LISTHEADER. PARAMETERS P_DEPT TYPE ZEMP_TEST-EDEPT. START-OF-SELECTION. PERFORM FRM_GET_EVENT. PERFORM FRM_GET_DATA. PERFORM FRM_COMMENT_BUILD. PERFORM FRM_ALV_DISPLAY. *&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_DATA . SELECT *
FROM ZEMP_TEST
INTO TABLE IT_ZEMP
WHERE EDEPT = P_DEPT. IF SY-SUBRC <> .
MESSAGE S001() WITH '不存在符合条件的数据' DISPLAY LIKE 'E'.
STOP.
ENDIF. ENDFORM. " FRM_GET_DATA *&---------------------------------------------------------------------*
*& Form FRM_ALV_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_ALV_DISPLAY .
DATA LW_REPID TYPE SY-REPID.
LW_REPID = SY-REPID. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = LW_REPID
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = 'ZEMP_TEST'
* I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'ALV DEMO'
* I_GRID_SETTINGS =
* IS_LAYOUT =
* IT_FIELDCAT =
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
IT_EVENTS = IT_EVENT
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_ZEMP
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> .
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. ENDFORM. " FRM_ALV_DISPLAY
*&---------------------------------------------------------------------*
*& Form FRM_GET_EVENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_GET_EVENT . * EVENTS
*SLIS_EV_ITEM_DATA_EXPAND TYPE SLIS_FORMNAME VALUE 'ITEM_DATA_EXPAND',
*SLIS_EV_REPREP_SEL_MODIFY TYPE SLIS_FORMNAME VALUE 'REPREP_SEL_MODIFY',
*SLIS_EV_CALLER_EXIT_AT_START TYPE SLIS_FORMNAME VALUE 'CALLER_EXIT',
*SLIS_EV_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND',
*SLIS_EV_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
*SLIS_EV_DATA_CHANGED TYPE SLIS_FORMNAME VALUE 'DATA_CHANGED',
*SLIS_EV_TOP_OF_COVERPAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_COVERPAGE',
*SLIS_EV_END_OF_COVERPAGE TYPE SLIS_FORMNAME VALUE 'END_OF_COVERPAGE',
*SLIS_EV_FOREIGN_TOP_OF_PAGE TYPE SLIS_FORMNAME
* VALUE 'FOREIGN_TOP_OF_PAGE',
*SLIS_EV_FOREIGN_END_OF_PAGE TYPE SLIS_FORMNAME
* VALUE 'FOREIGN_END_OF_PAGE',
*SLIS_EV_PF_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
*SLIS_EV_LIST_MODIFY TYPE SLIS_FORMNAME VALUE 'LIST_MODIFY',
*SLIS_EV_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
*SLIS_EV_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE',
*SLIS_EV_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST',
*SLIS_EV_AFTER_LINE_OUTPUT TYPE SLIS_FORMNAME VALUE 'AFTER_LINE_OUTPUT',
*SLIS_EV_BEFORE_LINE_OUTPUT TYPE SLIS_FORMNAME VALUE
* 'BEFORE_LINE_OUTPUT',
*SLIS_EV_SUBTOTAL_TEXT TYPE SLIS_FORMNAME VALUE 'SUBTOTAL_TEXT',
*SLIS_EV_GROUPLEVEL_CHANGE TYPE SLIS_FORMNAME VALUE
* 'GROUPLEVEL_CHANGE',
*SLIS_EV_CONTEXT_MENU TYPE SLIS_FORMNAME VALUE 'CONTEXT_MENU'. DATA: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'FRM_TOP_OF_PAGE'. DATA L_EVENTS TYPE SLIS_ALV_EVENT. CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE =
IMPORTING
ET_EVENTS = IT_EVENT
EXCEPTIONS
LIST_TYPE_WRONG =
OTHERS = .
IF SY-SUBRC <> .
MESSAGE ID SY-MSGID TYPE SY-MSGTY
NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* 在事件(字段名:NAME)为"TOP_OF_PAGE"的行中
*将FORM名(字段名:FORM)设为"FRM_TOP_OF_PAGE"
* 这样,系统就会自动PERFORM FRM_TOP_OF_PAGE.
CLEAR L_EVENTS.
READ TABLE IT_EVENT
WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO L_EVENTS. IF SY-SUBRC = .
MOVE FORMNAME_TOP_OF_PAGE TO L_EVENTS-FORM.
MODIFY IT_EVENT FROM L_EVENTS INDEX SY-TABIX.
ELSE.
L_EVENTS-FORM = FORMNAME_TOP_OF_PAGE.
L_EVENTS-NAME = FORMNAME_TOP_OF_PAGE.
APPEND L_EVENTS TO IT_EVENT.
ENDIF. ENDFORM. " FRM_GET_EVENT *&---------------------------------------------------------------------*
*& Form FRM_TOP_OF_PAGE
*&---------------------------------------------------------------------*
* 表头
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
I_LOGO = 'ENJOYSAP_LOGO'
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
* "TCODE:OAOR,CLASS
* NAME:PICTURES,CLASS TYPE :OT,执行,可以看到所有的PICTURE ENDFORM. "FRM_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form FRM_COMMENT_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_COMMENT_BUILD .
DATA LW_LISTHEADER TYPE SLIS_LISTHEADER. CLEAR: IT_LISTHEADER, LW_LISTHEADER. LW_LISTHEADER-TYP = 'H'.
LW_LISTHEADER-INFO = 'ALV DEMO'.
APPEND LW_LISTHEADER TO IT_LISTHEADER. CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-KEY = '用户:'.
LW_LISTHEADER-INFO = SY-UNAME.
APPEND LW_LISTHEADER TO IT_LISTHEADER. CLEAR LW_LISTHEADER.
LW_LISTHEADER-TYP = 'S'.
LW_LISTHEADER-KEY = '日期:'.
LW_LISTHEADER-INFO = SY-DATUM.
APPEND LW_LISTHEADER TO IT_LISTHEADER. ENDFORM. " FRM_COMMENT_BUILD

最新文章

  1. Comet ASP.NET AJAX 示例
  2. BIOS开启虚拟化
  3. SolrCloud-如何在.NET程序中使用
  4. Java基础(34):Java中基本数据类型的包装类(主要为了不同数据类型之间更方便的进行转换)(Wrapper类)
  5. Linux内核--网络栈实现分析(一)--网络栈初始化--转
  6. UIcollectionView的使用(首页的搭建2)
  7. Microsoft.AspNet.FriendlyUrls发布到IIS后404报错的解决方案
  8. 记录 FTPClient 超时处理的相关问题
  9. python -- 小数据池 is和 == 再谈编码
  10. 基于OpenSSL的HTTPS通信C++实现
  11. Python 多环境配置管理
  12. 安全需求-建模归类——By Me
  13. 更改MySQL数据库的编码为utf8mb4
  14. 【转】在嵌入式Linux和PC机Linux下使用popen函数时,程序运行结果有差异。
  15. iOS开发-CocoaPods实战
  16. python自动制作gif并添加文字
  17. Hadoop新手学习指导
  18. 下载Windows版本的Redis
  19. [翻译] Icon and Image Sizes
  20. 关于ISP、IAP、DFU和bootloader

热门文章

  1. python【第二十一篇】Django模板继承、分页、cookie验证
  2. Leetcode 解题 Median of Two sorted arrays
  3. Mongoengine 使用笔记
  4. load-store/register-memory/register-plus-memory比较
  5. MVC页面上多个提交按钮提交到不同的Action
  6. 理解Python的迭代器
  7. java 异常小结
  8. C# 合并DLL, 合并DLL进入EXE 【转】
  9. asp.net 登陆后在ashx处理程序中获取不到Session
  10. [wikioi]拦截导弹