您的位置:首页 > 其它

ALV标题头的显示

2010-01-27 14:51 204 查看
REPORT ZEASYALVTEST MESSAGE-ID ZEASYMESSAGE.
TABLES : SPFLI.
SELECT-OPTIONS : S_CARR FOR SPFLI-CARRID,
S_CONN FOR SPFLI-CONNID.
DATA : IT_SPFLI TYPE TABLE OF SPFLI WITH HEADER LINE.
DATA : ALV_SPFLI TYPE TABLE OF SPFLI WITH HEADER LINE.
*&------------------------------------*
*&-- DECLARE DATA FOR ALV
*&-----------------------------------*
TYPE-POOLS: slis.
DATA : g_variant LIKE disvariant,
g_save(1) TYPE c,
g_exit(1) TYPE c,
gx_variant LIKE disvariant.
**-------------------------------------*
DATA : G_REPID LIKE SY-REPID.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gt_events TYPE slis_t_event ,
gt_list_top_of_page TYPE slis_t_listheader,
gs_print TYPE slis_print_alv,
gs_layout TYPE slis_layout_alv .
G_REPID = SY-REPID.
SELECT * INTO TABLE IT_SPFLI
FROM SPFLI
WHERE CARRID IN S_CARR
AND CONNID IN S_CONN.
CHECK IT_SPFLI[] IS NOT INITIAL.
ALV_SPFLI[] = IT_SPFLI[].
PERFORM DISPLAYALV.
*&---------------------------------------------------------------------*
*& Form DISPLAYALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAYALV .
*-- PREPARE ALV DATA
PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
*-- LAYOUT SETTING
PERFORM PREPARE_ALV_FIELD USING GT_FIELDCAT[].
*-- ALV DISPLAY
PERFORM CALL_REUSE_ALV_GRID_DISPLAY.

ENDFORM. " DISPLAYALV

*&---------------------------------------------------------------------*
*& Form EVENTTAB_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_EVENTS[] text
*----------------------------------------------------------------------*
FORM EVENTTAB_BUILD USING PT_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 = PT_EVENTS.
READ TABLE PT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
LS_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY PT_EVENTS FROM LS_EVENT INDEX SY-TABIX.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*& Form PREPARE_ALV_FIELD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_FIELDCAT[] text
*----------------------------------------------------------------------*
FORM PREPARE_ALV_FIELD USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_LINE TYPE SLIS_FIELDCAT_ALV.
DATA: dat type d,
datt(10).
*-- DEFINE MARCO
DEFINE APPEND_ALV_FIELD.
CLEAR LS_LINE.
LS_LINE-FIELDNAME = &1.
LS_LINE-TABNAME = &2.
LS_LINE-REPTEXT_DDIC = &3.
LS_LINE-SELTEXT_L = &3.
LS_LINE-SELTEXT_M = &3.
LS_LINE-SELTEXT_S = &3.
LS_LINE-QFIELDNAME = &4.
LS_LINE-QTABNAME = &5.
LS_LINE-NO_OUT = &6.
LS_LINE-NO_ZERO = &7.
LS_LINE-OUTPUTLEN = &8.
LS_LINE-lzero = &9. "输出前导0.
APPEND LS_LINE TO P_FIELDCAT.
END-OF-DEFINITION.

APPEND_ALV_FIELD: 'CARRID' 'ALV_SPFLI' '航线承运人ID' "DN
'' ''
'O' 'X' '' ''.

APPEND_ALV_FIELD: 'CONNID' 'ALV_SPFLI' '航班连接 Id' "MBLNO
'' ''
'O' 'X' '' 'X'.
APPEND_ALV_FIELD: 'CITYFROM' 'ALV_SPFLI' '起飞城市' "HBLNO
'' ''
'O' 'X' '' ''.
APPEND_ALV_FIELD: 'CITYTO' 'ALV_SPFLI' '目标城市' "SENDTIMES SELLERNAME
'' ''
'O' 'X' '' ''.
APPEND_ALV_FIELD: 'DISTANCE' 'ALV_SPFLI' '距离' "
'' ''
'O' 'X' '' ''.
ENDFORM. " PREPARE_ALV_FIELD

*&---------------------------------------------------------------------*
*& Form CALL_REUSE_ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CALL_REUSE_ALV_GRID_DISPLAY .
gs_layout-f2code = 'DISPLAY'.
gs_print-no_print_listinfos = 'X'.
gs_layout-colwidth_optimize = 'X'. "列宽度自动根据内容优化
* gs_layout-f2code = '&ETA'. "double check弹出详细信息
* gs_layout-zebra = 'X'. "清单条纹显示
gs_layout-no_vline = ''. "是否显示列间隔线
gs_layout-box_fieldname = ''. "是否显示checkbox
gs_layout-confirmation_prompt = ''. "推出清单是否提示
gs_layout-detail_titlebar = '详细信息'."详细清单的标题
gs_layout-DETAIL_POPUP = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID "SY-CPROG
I_BACKGROUND_ID = 'ALV_BACKGROUND'
* i_buffer_active = 'X'
* I_CALLBACK_PF_STATUS_SET = 'ALV_PF_STATUS'
* I_CALLBACK_USER_COMMAND = 'ALV_USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = GT_LIST_TOP_OF_PAGE[]
IT_FIELDCAT = GT_FIELDCAT[]
IT_EVENTS = GT_EVENTS[]
I_STRUCTURE_NAME = 'ALV_SPFLI'
I_SAVE = 'A'
IS_LAYOUT = GS_LAYOUT
IS_PRINT = GS_PRINT
TABLES
T_OUTTAB = ALV_SPFLI
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFORM. " CALL_REUSE_ALV_GRID_DISPLAY
************************************************************************************

*&---------------------------------------------------------------------*
*& Form COMMENT_BUILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_LIST_TOP_OF_PAGE[] text
*----------------------------------------------------------------------*
FORM COMMENT_BUILD USING LT_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 = '航班时刻表'.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
* STATUS LINE: TYPE S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = '输出时间'. "TEXT-101.
LS_LINE-INFO = SY-DATUM. "TEXT-102.
APPEND LS_LINE TO LT_TOP_OF_PAGE.
LS_LINE-KEY = '查询者'. "TEXT-103.
LS_LINE-INFO = 'EASY'. "TEXT-104.
APPEND LS_LINE TO LT_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 = '详细信息'. "TEXT-105.
APPEND LS_LINE TO LT_TOP_OF_PAGE.

ENDFORM. " COMMENT_BUILD

FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'EASYPICTURE'
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.

REPORT 中没有任何的PERFORM TOP_OF_PAGE 调用,但是这是必须存在的,CALL_REUSE_ALV_GRID_DISPLAY 函数参数 I_CALLBACK_PROGRAM 会回调这个子函数。

表头中的图片显示可参考http://seaflying.bokee.com/26982.html,简单说在OAER 中载入图片,函数中调用图片的名字就OK了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: