# ABAP 1. ALV快速模板

本文介绍了ABAP中用于快速开发报表的两种ALV模板:普通ALV和OOALV。普通ALV适用于简单报表需求,便于应对频繁变化的业务需求。而OOALV适合平台类报表,具有联动关系,提供了更灵活的模板。模板的使用旨在加速开发进程,节省时间。
摘要由CSDN通过智能技术生成

#1 ALV快速模板

提示:
不了解我可以点这里看看哟.



前言

大部分时候,我们的需求最常见的就是开发报表
如果只是简单的报表还好,有的报表是层层嵌套屏幕,每次重头开始略有点费劲,
所以就有了快速模板,CV大法,然后再处理业务逻辑。


一、普通ALV

业务和用户只想看看数据没什么操作,5min

REPORT YYTEST001.

DATA : gt_ekpo  TYPE TABLE OF ekpo .

DATA : gr_table     TYPE REF TO cl_salv_table ,
       gr_sorts     TYPE REF TO cl_salv_sorts ,         " Sorts – CL_SALV_SORTS
       gr_agg       TYPE REF TO cl_salv_aggregations ,  " Aggregations – CL_SALV_AGGREGATIONS
       gr_functions TYPE REF TO cl_salv_functions ,     " Tool bar
       gr_columns   TYPE REF TO cl_salv_columns_table , " Columns – CL_SALV_COLUMNS_TABLE and CL_SALV_COLUMN_TABLE
       gr_column    TYPE REF TO cl_salv_column_table ,
       lw_color     TYPE lvc_s_colo.

START-OF-SELECTION .
 
  " 读取后处理数据	
  SELECT *
    INTO TABLE gt_ekpo FROM ekpo UP TO 100 rows .

  cl_salv_table=>factory( IMPORTING r_salv_table = gr_table CHANGING t_table = gt_ekpo ).

  " tool bar
  gr_functions = gr_table->get_functions( ).
  gr_functions->set_all( abap_true ).


  "Columns – CL_SALV_COLUMNS_TABLE and CL_SALV_COLUMN_TABLE
*  gr_columns = gr_table->get_columns( ).
*  gr_column ?= gr_columns->get_column( 'ZMRQNO' ).
*  gr_column->set_long_text( '测试文本' ).
*  gr_column->set_medium_text( '测试文本' ).
*  gr_column->set_short_text( '测试文本' ).


  "整列不显示
  gr_columns = gr_table->get_columns( ).
  gr_column ?= gr_columns->get_column( 'MANDT' ).


  CALL METHOD gr_column->set_visible
    EXPORTING
      value = if_salv_c_bool_sap=>false.

  "排序
  gr_sorts = gr_table->get_sorts( ).
  gr_sorts->add_sort( columnname = 'EBELN' ).

*  Aggregations – CL_SALV_AGGREGATIONS
  " 汇总一列
  gr_agg = gr_table->get_aggregations( ).
  gr_agg->add_aggregation( 'MENGE' ).

  gr_table->display( ).

另外还有种相对low一点的模板。
这种的好处就是方便业务经常变化,比如和用户沟通后需求变来变去,比如一会要加个联动,
一会要加个按钮,这个就比较方便经常的修改。

REPORT yytest002.

*&--------------------------------------*
*& 功能说明:
*& 创建人:
*& 日期
*&
*& 开发顾问   请求  业务顾问 时间  修改内容
*& 
*&--------------------------------------*
INCLUDE yytest002_top .
INCLUDE yytest002_sel .
INCLUDE yytest002_main .
INCLUDE yytest002_frm .

*&---------------------------------------------------------------------*
*& 包含               YYTEST002_TOP
*&---------------------------------------------------------------------*
"""""""""""""""""""""""TABLE"""""""""""""""""""""""""""""""""""
TYPE-POOLS : slis .
TABLES : sscrfields  .

"""""""""""""""""""""""Type Define"""""""""""""""""""""""""""""
TYPES : BEGIN OF ty_alv ,
          sel   TYPE char1 ,
        END OF ty_alv .
"""""""""""""""""""""""Inner Table"""""""""""""""""""""""""""""
DATA : gt_alv TYPE TABLE OF ty_alv .

"""""""""""""""""""""""Global Value""""""""""""""""""""""""""""
DATA : gw_alv TYPE ty_alv .

""""""""""""""""""""""" ALV """""""""""""""""""""""""""""""""""
DATA : gw_fieldcat TYPE slis_fieldcat_alv,
       gt_fieldcat TYPE slis_t_fieldcat_alv,
       gw_layout   TYPE slis_layout_alv.

"""""""""""""""""""""""Define Macro"""""""""""""""""""""""""""""""""
DEFINE add_fieldcat_alv .
  CLEAR : gw_fieldcat .
  gw_fieldcat-fieldname = &1 .
  gw_fieldcat-seltext_l = &2 .
  gw_fieldcat-outputlen = &3 .
  gw_fieldcat-hotspot   = &4 .
  APPEND gw_fieldcat TO gt_fieldcat .

END-OF-DEFINITION.

*&---------------------------------------------------------------------*
*& 包含               YYTEST002_SEL
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001 .

  SELECT-OPTIONS :
   PARAMETERS :

SELECTION-SCREEN END OF BLOCK b1 .

*&---------------------------------------------------------------------*
*& 包含               YYTEST002_MAIN
*&---------------------------------------------------------------------*

*----------------------------------------------------------------------*
* Initialization
*------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值