首页 > 代码库 > ALV 報表顯示表頭

ALV 報表顯示表頭

1、先定義變量

DATA: W_EVENTS LIKE LINE OF IT_EVENTS, 

      IT_EVENTS   TYPE SLIS_T_EVENT. 

2、給變量賦值

" Display Header in ALV Report

  CALL FUNCTION ‘REUSE_ALV_EVENTS_GET‘

    EXPORTING

      I_LIST_TYPE = 0

    IMPORTING

      ET_EVENTS   = IT_EVENTS.

 

  READ TABLE IT_EVENTS WITH KEY NAME = ‘TOP_OF_PAGE‘ INTO W_EVENTS.

  IF SY-SUBRC = 0.

    MOVE ‘HEADER‘ TO W_EVENTS-FORM.

    MODIFY IT_EVENTS FROM W_EVENTS INDEX SY-TABIX.

  ENDIF.

3、表頭子程序

"ALV上一行四列顯示

FORM header.

DATA: GT_TX_REMARK LIKE TLINE OCCURS 0 WITH HEADER LINE.

 

  DATA:LR_CONTENT     TYPE REF TO CL_SALV_FORM_ELEMENT

      ,LR_ROWS        TYPE REF TO CL_SALV_FORM_LAYOUT_GRID

      ,LR_ROW         TYPE REF TO CL_SALV_FORM_LAYOUT_FLOW

      ,LR_GRID_STATUS TYPE REF TO CL_SALV_FORM_LAYOUT_GRID

      .

  CREATE OBJECT LR_ROWS.

  LR_CONTENT = LR_ROWS.

  LR_ROW = LR_ROWS->ADD_ROW( ).

  LR_GRID_STATUS = LR_ROW->CREATE_GRID( ).

 

"第二行是中英文說明

  ADD 1 TO LI_ROW.

 

 

*    , LC_Z1088         TYPE ZAUSP-Z1084  " 客戶型號

*     , LC_Z1083         TYPE ZAUSP-Z1083  "公司型號

*  LC_Z1089         TYPE ZAUSP-Z1089  "投產情況

 

  IF SY-LANGU = ‘1‘ OR SY-LANGU = ‘M‘.

    CONCATENATE ‘英文說明             : ‘ LC_MAKTX_EN INTO LC_INFO SEPARATED 

 

BY SPACE.

  ELSE.

    CONCATENATE ‘Description(EN)      : ‘ LC_MAKTX_EN INTO LC_INFO SEPARATED 

 

BY SPACE.

  ENDIF.

 

  LR_GRID_STATUS->CREATE_TEXT(

             ROW    = LI_ROW

             COLUMN = 1

             TEXT   = LC_INFO ).

 

  IF SY-LANGU = ‘1‘ OR SY-LANGU = ‘M‘.

    CONCATENATE ‘客戶型號         :‘  LC_Z1088 INTO LC_INFO SEPARATED BY 

 

SPACE.

  ELSE.

    CONCATENATE ‘CUSTOM_MODEL     :‘  LC_Z1088 INTO LC_INFO SEPARATED BY 

 

SPACE.

  ENDIF.

 

  LR_GRID_STATUS->CREATE_TEXT(

   ROW    = LI_ROW

   COLUMN = 3

   TEXT   = LC_INFO ).

 

  "文本第二行

  CLEAR GT_TX_REMARK.

  READ TABLE GT_TX_REMARK INDEX 2.

  LR_GRID_STATUS->CREATE_TEXT(

    ROW    = LI_ROW

    COLUMN = 4

    TEXT   = GT_TX_REMARK-TDLINE ).

 

ENDFORM.  

4、顯示ALV

CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY‘

    EXPORTING

      I_CALLBACK_PROGRAM       = G_REPID

      IT_FIELDCAT              = GT_FIELDCAT[]

      I_CALLBACK_PF_STATUS_SET = G_STATUS

      I_CALLBACK_USER_COMMAND  = ‘USER_COMMAND‘

      IS_LAYOUT                = X_LAYOUT

      IT_EVENTS                = IT_EVENTS "此處的事件代碼就是顯示ALV表頭

      IS_VARIANT               = G_VARIANT

      I_SAVE                   = G_SAVE      " A = All => Standard & User

    TABLES

      T_OUTTAB                 = INTAB

    EXCEPTIONS

      PROGRAM_ERROR            = 1

      OTHERS                   = 2.

ALV 報表顯示表頭