ALV标题头的显示

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了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值