利用宏的方式去输出
REPORT ztest_tanp_alv2.
DATA it_spfli TYPE TABLE OF spfli.
*从数据库中读取数据到内表中
SELECT * FROM spfli INTO TABLE it_spfli.
*声明字段名称内表和结构
DATA it_fieldcat_lvc TYPE lvc_t_fcat.
DATA wa_fieldcat_lvc TYPE LINE OF lvc_t_fcat.
DATA is_layout_lvc TYPE lvc_s_layo.
PERFORM set_fieldcat.
PERFORM set_layout.
*&---------------------------------------------------------------------*
*& Form set_fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
"set_fieldcat
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
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 = 'SPFLI'
* I_BACKGROUND_ID = ' '
i_grid_title = 'MY SPFLI' "标题
* I_GRID_SETTINGS =
is_layout_lvc = is_layout_lvc "输出格式内表
it_fieldcat_lvc = it_fieldcat_lvc "字段名称内表名
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS_LVC =
* IT_SORT_LVC =
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO_LVC =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_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.
*&---------------------------------------------------------------------*
*& Form set_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*设置输出格式
FORM set_layout.
CLEAR is_layout_lvc.
is_layout_lvc-zebra = 'X'."设置颜色
is_layout_lvc-cwidth_opt = 'X'."自动列宽
ENDFORM. "set_layout
*字段名称赋值给字段名称内表
FORM set_fieldcat.
*定义宏
DEFINE addfield.
clear wa_fieldcat_lvc.
wa_fieldcat_lvc-col_pos = &1.
wa_fieldcat_lvc-fieldname = &2.
wa_fieldcat_lvc-reptext = &3.
append wa_fieldcat_lvc to it_fieldcat_lvc.
END-OF-DEFINITION.
*利用定义好的宏进行赋值
addfield 1 'CARRID' '航线承运人'.
addfield 2 'CONNID' '航班连接'.
addfield 3 'COUNTRYFR' '起飞国家'.
addfield 4 'CITYFROM' '起飞城市'.
addfield 5 'COUNTRYTO' '目的国家'.
addfield 6 'CITYTO' '目标城市'.
addfield 7 'DISTANCE' '距离'.
addfield 8 'DISTID' '单位'.
ENDFORM. "set_fieldcat