利用宏的方式去输出

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 'CARRID' '航线承运人'.
  addfield 'CONNID' '航班连接'.
  addfield 'COUNTRYFR' '起飞国家'.
  addfield 'CITYFROM' '起飞城市'.
  addfield 'COUNTRYTO' '目的国家'.
  addfield 'CITYTO' '目标城市'.
  addfield 'DISTANCE' '距离'.
  addfield 'DISTID' '单位'.
ENDFORM.                    "set_fieldcat

posted @ 2017-08-29 17:24  独吊东南枝  阅读(172)  评论(0编辑  收藏  举报