03、ALV报表开发

01、ALV介绍

  ALV全名为Abap List View,是SAP一个数据报表显示工具,根据用户的需求调整各栏位顺序及格式,输入内表,选择相应字段,将结果输出到界面上。

02、ALV类别

ALV技术类别名称优点缺点
Function ALV函数REUSE_ALV_GRID_DSIPLAY简单易用,生产性价比较高不易控制画面,无法满足特定开发需求
ALV GRIDCL_GUI_ALV_GRID更灵活、更安全面向对象开发导致初学者难上手,不能以Batch Job登录后在后台运行
SALVCL_SALV_TABLE解决上述两种ALV实现方式的缺点面向对象开发导致初学者难上手,不支持编辑模式

03、写一个简单的ALV报表程序

  ALV对于初学者,无需深入了解各个参数的含义,只需要会复制粘贴,改改代码,能正常显示报表即可,等熟悉报表开发之后,再慢慢了解各个参数,便于后续开展定制化开发工作。
笔者实力低微,对面向对象开发还未了解,因此只能用传统的Function ALV写一个简单的报表,供初学者了解ALV是什么、ALV怎么用、以及ALV输出的结果是什么样的

TYPE-POOLS: slis.
TABLES: mara.
DATA: gs_layout_lvc TYPE  lvc_s_layo,
      gt_fcat_lvc   TYPE lvc_t_fcat,
      gs_fcat_lvc   TYPE lvc_s_fcat.

*直接定义内表
DATA: BEGIN OF item OCCURS 0,
        matnr  LIKE mara-matnr, "物料编号
        mtart  LIKE mara-mtart, "物料类型
        matkl  LIKE mara-matkl, "物料组
      END OF item.

* 筛选界面 单选p,多选s
SELECTION-SCREEN BEGIN OF BLOCK blc WITH FRAME TITLE text-001.
  PARAMETERS:  p_matnr  LIKE mara-matnr."物料编号
  SELECT-OPTIONS  s_mtart  FOR mara-mtart ."物料类型
  SELECT-OPTIONS  s_matkl  FOR mara-matkl ."物料组
SELECTION-SCREEN END OF BLOCK blc.

* 初始化变量
INITIALIZATION.
  DATA: it_item LIKE TABLE OF item WITH HEADER LINE.

START-OF-SELECTION.
    PERFORM get_data.
    PERFORM frm_set_fieldcat.
    PERFORM frm_alv_display.

* 获取数据
FORM get_data.
  clear: it_item.
  SELECT *
      INTO CORRESPONDING FIELDS OF TABLE it_item
      FROM mara.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_set_fieldcat
*&---------------------------------------------------------------------*
FORM frm_set_fieldcat .
  DEFINE set_fieldcat.
    CLEAR gs_fcat_lvc .
    gs_fcat_lvc-fieldname = &1."内表的字段
    gs_fcat_lvc-outputlen = &2."输出长度
    gs_fcat_lvc-scrtext_l = gs_fcat_lvc-scrtext_s = gs_fcat_lvc-scrtext_m = &3."在ALV里面显示的名字
    gs_fcat_lvc-just      = &4."水平对齐方式,L左对齐,R右对齐。
    gs_fcat_lvc-lzero      = &5. "输出前导0
    gs_fcat_lvc-no_zero    = &6.
    gs_fcat_lvc-emphasize  = &7.
    APPEND gs_fcat_lvc TO gt_fcat_lvc .
  END-OF-DEFINITION.
  set_fieldcat:
    'matnr'   ''      '物料编号'        ''  ''  '' '',
    'mtart'   ''      '物料类型'        ''  ''  '' ''  ,
    'matkl'   ''      '物料组'        ''  ''  '' ''  .
ENDFORM.

* 显示数据
FORM frm_alv_display .
  gs_layout_lvc-sel_mode   = 'A'.
*-调用ALV展示数据
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program = sy-repid
      is_layout_lvc      = gs_layout_lvc
      it_fieldcat_lvc    = gt_fcat_lvc[]
      i_save             = 'A'
      i_default          = 'X'
    TABLES
      t_outtab           = it_item
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.
ENDFORM.

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值