*&---------------------------------------------------------------------*
*& Report  Z_ZY_ALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z_ZY_ALV.
TABLES SPFLI.
*&---------------------------------------------------------------------*
*  ALV相关变量
*&---------------------------------------------------------------------*
TYPE-POOLS SLIS.
DATA:GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
      G_REPID  TYPE SY-REPID VALUE 'SY-REPID',
     IT_FIELD  TYPE SLIS_T_FIELDCAT_ALV,
     WA_FIELD  TYPE SLIS_FIELDCAT_ALV.



  DATA ITAB LIKE TABLE OF SPFLI WITH HEADER LINE.
  PARAMETERS INPUT LIKE SPFLI-CARRID.

*&---------------------------------------------------------------------*
*  宏定义
*&---------------------------------------------------------------------*
DEFINE ADD_FIELD.
  CLEAR WA_FIELD.
  WA_FIELD-FIELDNAME    = &1.
  WA_FIELD-SELTEXT_S = &2.
  APPEND WA_FIELD TO IT_FIELD.
END-OF-DEFINITION.
*&---------------------------------------------------------------------*
*  宏调用
*&---------------------------------------------------------------------*

 ADD_FIELD 'CARRID' '航线承运人ID'.
  ADD_FIELD 'CONNID' '航班连接 Id' .
  ADD_FIELD 'COUNTRYFR' '国家代码' .
  ADD_FIELD 'CITYFROM' '起飞城市' .
  ADD_FIELD 'AIRPFROM' '起飞机场'.
  ADD_FIELD 'COUNTRYTO' '国家代码'.
  ADD_FIELD 'CITYTO' '目标城市'.
  ADD_FIELD 'AIRPTO' '目的机场'.
  ADD_FIELD 'FLTIME' '航班时间'.
  ADD_FIELD 'DEPTIME' '启程时间'.
  ADD_FIELD 'ARRTIME' '到达时间'.
  ADD_FIELD 'DISTANCE' '距离'.
  ADD_FIELD 'DISTID' '大距离单位'.
  ADD_FIELD 'FLTYPE' '航班类型'.
  ADD_FIELD 'PERIOD' 'Arrival n day(s) later'.


SELECT * FROM SPFLI into TABLE ITAB WHERE SPFLI~CARRID = INPUT.

*LOOP AT ITAB.
*  WRITE: / ITAB-CARRID.
*  ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     I_CALLBACK_PROGRAM = G_REPID
     IT_FIELDCAT        = IT_FIELD
      IS_LAYOUT          = GS_LAYOUT
     I_SAVE             = 'A'
   TABLES
      T_OUTTAB           = ITAB.  "输出的内表