[ABAP]Function实现ALV Table 二:ALV的弹出窗口形式

 *&---------------------------------------------------------------------*
*& Report  ZKJ_ALV_TEST_02
*&
*&---------------------------------------------------------------------*
*&      Function实现ALV Table 二:ALV的弹出窗口形式
*&
*&---------------------------------------------------------------------*

REPORT  ZKJ_ALV_TEST_02.

*ALV除了可以显示列表在当前窗口,也可以用弹出窗口的形式显示列表。设
*置弹出窗口显示列表需要设置REUSE_ALV_GRID_DISPLAY四个参数:
*i_screen_start_column  弹出窗口的左边距
*i_screen_start_line    弹出窗口的上边距
*i_screen_end_column    到弹出窗口显示结束的左边距
*i_screen_end_line      到弹出窗口显示结束的上边距
*通过这四个参数可以设置弹出窗口的显示大小和位置。

TYPE-POOLS:SLIS.

SELECTION-SCREEN PUSHBUTTON 2(20) BTN USER-COMMAND PUSH.

INITIALIZATION.
  BTN = 'Open new window'.

AT SELECTION-SCREEN.
  PERFORM F_MAIN.

*&---------------------------------------------------------------------*
*&      Form  F_MAIN
*&---------------------------------------------------------------------*
*       ALV display
*----------------------------------------------------------------------*
FORM F_MAIN .
  DATA:
    TD_SPFLI TYPE TABLE OF SPFLI,
    TD_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

  PERFORM GET_DATA TABLES TD_SPFLI.

  PERFORM SET_CATALOG CHANGING TD_FIELDCAT.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
*     I_INTERFACE_CHECK                 = ' '
*     I_BYPASSING_BUFFER                = ' '
*     I_BUFFER_ACTIVE                   = ' '
*     I_CALLBACK_PROGRAM                = ' '
*     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                  =
*     I_BACKGROUND_ID                   = ' '
*     I_GRID_TITLE                      =
*     I_GRID_SETTINGS                   =
*     IS_LAYOUT                         =
      IT_FIELDCAT                       = TD_FIELDCAT
*     IT_EXCLUDING                      =
*     IT_SPECIAL_GROUPS                 =
*     IT_SORT                           =
*     IT_FILTER                         =
*     IS_SEL_HIDE                       =
*     I_DEFAULT                         = 'X'
*     I_SAVE                            = ' '
*     IS_VARIANT                        =
*     IT_EVENTS                         =
*     IT_EVENT_EXIT                     =
*     IS_PRINT                          =
*     IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 10
      I_SCREEN_START_LINE               = 1
      I_SCREEN_END_COLUMN               = 100
      I_SCREEN_END_LINE                 = 25
*     I_HTML_HEIGHT_TOP                 = 100
*     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                          = TD_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.                    " F_MAIN

*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       Get the data for output
*----------------------------------------------------------------------*
*      -->PTD_SPFLI   data internal table
*----------------------------------------------------------------------*
FORM GET_DATA  TABLES PTD_SPFLI STRUCTURE SPFLI.
  SELECT * FROM SPFLI INTO TABLE PTD_SPFLI.
ENDFORM.                    " GET_DATA

*&---------------------------------------------------------------------*
*&      Form  SET_CATALOG
*&---------------------------------------------------------------------*
*       set fieldcatalog for alv output
*----------------------------------------------------------------------*
FORM SET_CATALOG  CHANGING PTD_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

  DATA:
    LTH_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

  "MACRO
  DEFINE ADD_FIELD.
    CLEAR: LTH_FIELDCAT.
    LTH_FIELDCAT-COL_POS = &1.
    LTH_FIELDCAT-FIELDNAME = &2.
    LTH_FIELDCAT-SELTEXT_L = &3.
    APPEND LTH_FIELDCAT TO PTD_FIELDCAT.
  END-OF-DEFINITION.

  "add field catalog
  ADD_FIELD 1 'MANDT'      'Client'.
  ADD_FIELD 2 'CARRID'     'Airline Code'.
  ADD_FIELD 3  'CONNID'    'Fight Number'.
  ADD_FIELD 4  'COUNTRYFR' 'Country From'.
  ADD_FIELD 5  'CITYFROM'  'City From'.
  ADD_FIELD 6  'AIRPFROM'  'Airpart From'.
  ADD_FIELD 7  'COUNTRYTO' 'Country To'.
  ADD_FIELD 8  'CITYTO'    'City To'.
  ADD_FIELD 9  'AIRPTO'    'Airpart To'.
  ADD_FIELD 10 'FLTIME'    'Fly Time'.
  ADD_FIELD 11 'DEPTIME'   'Dept Time'.
  ADD_FIELD 12 'ARRTIME'   'Arrive Time'.
  ADD_FIELD 13 'DISTANCE'  'Distance'.
  ADD_FIELD 14 'DISTID'    'Mass unit of distance'.
  ADD_FIELD 15 'FLTYPE'    'Flight type'.
  ADD_FIELD 16 'PERIOD'    'Arrival n day(s) later'.

ENDFORM.                    " SET_CATALOG

【参照:http://blog.csdn.net/lhx20/archive/2008/09/19/2950243.aspx

猜你喜欢

转载自klg.iteye.com/blog/277183
alv
今日推荐