在使用SAP开发后,我们常常会使用LAV进行开发对数据进行报表处理,如何实现一个最基本ALV是一个ABAP开发人员必须掌握的技能。

ALV显示数据

REPORT Z_alv.
**************************************************
* 1.定义ALV所用用到的池 type-pools:slis.
* 2.声明ALV的控制信息(layout&fieldcat).
* 2.声明fieldcat的宏信息,减少代码量
**************************************************
TABLES :MARA.
type-pools slis.
data: fieldcat    type slis_t_fieldcat_alv,
      fieldcat_ln LIKE LINE OF fieldcat,
      layout      TYPE slis_layout_alv,
      col_pos     type i.
  DEFINE hout.
    add 1 to col_pos.
    fieldcat_ln-col_pos     = col_pos.
    fieldcat_ln-fieldname   = &1.
    fieldcat_ln-seltext_m   = &2.
    append fieldcat_ln to fieldcat.
    clear fieldcat_ln.
   end-OF-DEFINITION.
**************************************************
* 1.声明内表,将需要显示的字段放入内表
**************************************************
data: begin of gt_itab occurs 0,
      matnr type mara-matnr,
      matkl type mara-matkl,
      MTART type mara-MTART,
      MEINS type mara-MEINS,
  end of gt_itab.
**************************************************
* 定义ALV条件筛选
**************************************************
SELECT-OPTIONS S_MATNR FOR MARA-MATNR.
START-OF-SELECTION.
**************************************************
* 1.获取内表数据放入internal TABLE
**************************************************
  select mara~matnr
         mara~matkl
         mara~mtart
         mara~meins

  into CORRESPONDING FIELDS OF TABLE gt_itab
   FROM mara
   up to 10 ROWS
   WHERE MATNR IN S_MATNR.
******************************************************
* 1.建立ALV显示样式(layout)和显示字段清单(Field Catalogs)
**************************************************
 layout-zebra     = 'X'.
 layout-no_vline  = 'X'.
 layout-colwidth_optimize = 'X'.
 layout-detail_titlebar = '物料清单明细'.
 hout :
    'matnr' '物料',
    'matkl' '物料组',
    'meins' '基本单位',
    'mtart' '物料类型'.
******************************************************
* 1.调用ALV Function Module
**************************************************
     CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = sy-repid
          is_layout          = layout
          it_fieldcat        = fieldcat[]
          i_save             = 'A'
          I_GRID_TITLE       = 'ALV案列'
        TABLES
          t_outtab           = gt_itab[]
        EXCEPTIONS
          program_error      = 1.

Comments are closed.

Post Navigation