ALV输出示例

*==========================================================*
*  ZTEST  ALV事例程序01                                    *
*==========================================================*
*  作成者: 莫怀远                                         *
*  作成日期: 2006/11/29                                   *
*  变更履历: yyyy/mm/dd xxx                               *
*             text                                         *
*             yyyy/mm/dd xxx                               *
*             text                                         *
*  概要内容:自定义ALV输出项目事例                         *
*----------------------------------------------------------*
REPORT ZTEST0001111 NO STANDARD PAGE HEADING.

*==========================================================*
* TYPE-POOLS
*==========================================================*
TYPE-POOLS SLIS.

*==========================================================*
* TABLES
*==========================================================*
TABLES: EKPO.

*----------------DEFINE MACRO------------------------------*
DEFINE ADD_FIELD.
  WA_FIELD-FIELDNAME = &1.
  WA_FIELD-REPTEXT_DDIC = &2.
  APPEND WA_FIELD TO IT_FIELD.
END-OF-DEFINITION.

*==========================================================*
* 定义变量和字段组
*==========================================================*
DATA: G_REPID TYPE SY-REPID,
      GS_LAYOUT TYPE SLIS_LAYOUT_ALV.

*==========================================================*
* TYPES定义
*==========================================================*
TYPES : BEGIN OF TY_EKPO,
          EBELN LIKE EKPO-EBELN,
          AEDAT LIKE EKPO-AEDAT,
          TXZ01 LIKE EKPO-TXZ01,
          MENGE LIKE EKPO-MENGE,
          MEINS LIKE EKPO-MEINS,
          NETWR LIKE EKPO-NETWR,
        END OF TY_EKPO.

*==========================================================*
* 定义内部表和工作区
*==========================================================*
DATA: WA_FIELD TYPE SLIS_FIELDCAT_ALV,
      IT_FIELD TYPE SLIS_T_FIELDCAT_ALV.

DATA : WA_EKPO TYPE TY_EKPO,
       IT_EKPO TYPE STANDARD TABLE OF TY_EKPO. "自定义用

*==========================================================*
* 抬头设置(自定义用)
ADD_FIELD 'EBELN' '订单编号'.
ADD_FIELD 'AEDAT' '订单日期'.
ADD_FIELD 'TXZ01' '物料名称'.
ADD_FIELD 'MENGE' '数    量'.
ADD_FIELD 'MEINS' '单    位'.
ADD_FIELD 'NETWR' '金    额'.

*==========================================================*
* SELETION-SCREEN
*==========================================================*
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME .
  SELECT-OPTIONS: S_AEDAT FOR  EKPO-AEDAT.
SELECTION-SCREEN END OF BLOCK BLOCK1.

*==========================================================*
* START-OF-SELECTION
*==========================================================*
START-OF-SELECTION.
  PERFORM FRM_GET_DATA.

*==========================================================*
* END-OF-SELECTION
*==========================================================*
END-OF-SELECTION.
  PERFORM FRM_OUTPUT_ALV.

*&---------------------------------------------------------*
*&      Form  FRM_GET_DATA
*&---------------------------------------------------------*
*       读取数据
*----------------------------------------------------------*
FORM FRM_GET_DATA.

  SELECT EBELN
         AEDAT
         TXZ01
         MENGE
         MEINS
         NETWR
    INTO TABLE IT_EKPO
    FROM EKPO
   WHERE AEDAT IN S_AEDAT.

  IF SY-SUBRC <> 0.
    MESSAGE S208(00) WITH 'NO GET DATA!'.
    LEAVE LIST-PROCESSING.
  ENDIF.

ENDFORM.                    " FRM_GET_DATA
*
*&---------------------------------------------------------*
*&      Form  OUT_BY_ALV
*&---------------------------------------------------------*
*       ALV样式输出
*----------------------------------------------------------*
FORM FRM_OUTPUT_ALV.

G_REPID = SY-REPID.
GS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GS_LAYOUT-WINDOW_TITLEBAR   = TEXT-101.     "TITLE
*TEXT-101(自定义ALV输出项目事例)

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_CALLBACK_PROGRAM = G_REPID
*    I_STRUCTURE_NAME         = 'EKPO'    "系统参照调用方法
    IT_FIELDCAT        = IT_FIELD        "自定义调用方法
    IS_LAYOUT          = GS_LAYOUT       "输出式样
    I_SAVE             = 'A'             "报表可保存状态设定
  TABLES
    T_OUTTAB           = IT_EKPO.        "报表明细数据

ENDFORM.                    " FRM_OUTPUT_ALV

你可能感兴趣的:(工作)