前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >function alv (一)

function alv (一)

作者头像
秋白
发布2021-03-20 14:09:37
8420
发布2021-03-20 14:09:37
举报
文章被收录于专栏:java小白

文章目录

  • ALV概览
  • 基本概念
  • ALV调用涉及内容
  • Fieldcat介绍
  • DEMO
    • 程序结构
    • Z_TEST_01TOP
    • Z_TEST_01FORM

ALV概览

  • ALV全称 SAP List View,是SAP提供的一个强大的数据报表显示工具
  • ALV实质上是一个屏幕空间对象,它通过程序传递数据内表的方式来显示数据

基本概念

1、 类型池:SLIS

  • 包含许多系统自定义的数据类型及类型组,如ALV要用到的数据类型都包含在SLIS这个类型池里

2、Fieldcat TYPE slis_t_fieldcat_alv

  • 列格式设置(表单)
  • 字段名称,列是否可修改等

3、 Layout TYPE slis_layout_alv

  • 全局格式设置(结构)
  • 整表字段是否可修改,是否以斑马纹输出,是否显示选择按钮字段等

4、函数:REUSE_ALV_FIELDCDATALOG_MERGE

  • 根据内表结构返回FIELDCAT字段结构信息

5、函数:REUSE_ALV_GRID_DISPLAY / REUSE_ALV_LIST_DISPLAY

  • 使用GRID/LIST模式输出ALV报表

ALV调用涉及内容

1、关键字解释:

  • START-OF-SELECTION :当结束了选择画面的时候,程序会从这里进行处理
  • END-OF-SELECTION :即START-OF-SELECTION相关事件执行完成,但输出屏幕还未显示之前。在实际开发中,主要应用于一些执行结果的检验等。其输出数据叠加于同一输出屏幕中。

2、START-OF-SELECTION

  • 数据表单数据选取

3、END-OF-SELECTION

  • 对FIELDCAT赋值:设置每列格式
  • 对LAYOUT赋值:设置表单格式(可选)
  • 对SORT表等赋值:设置排序内容(可选)
  • 对EVENT表赋值:增加程序交互事件(可选)
  • 调用函数,输出ALV

Fieldcat介绍

  • Fieldcat是一张内表,记录的是ALV输出时每列的属性信息

字段

说明

KEY

将列设置为关键字(‘X’/’’)

ICON

以图标显示(‘X’/’’)

CHECKBOX

以复选框显示(‘X’/’’)

JUST

定义对齐方式(‘X’/’’)

IZERO

增加前导零(‘X’/’’)

NO_SIGN

不显示符号(‘X’/’’)

NO_ZERO

不显示前导零(‘X’/’’)

COL_POS

作为第几列输出(数字)

DO_SUM

对字段进行汇总(‘X’/’’)

SELTEXT_L/M/S

字段名称描述长/中/短(字符串)

HOTSPOT

设置为热点(显示为有下划线)(‘X’/’’)

DEMO

程序结构
代码语言:javascript
复制
REPORT z_test_01.
INCLUDE z_test_01top. "存放变量
INCLUDE z_test_01form. “存放子历程

START-OF-SELECTION.
  PERFORM get_data. “获取数据

END-OF-SELECTION.
  IF gty_ekpo[] IS NOT INITIAL.
    PERFORM write_data. “展示数据
  ENDIF.
Z_TEST_01TOP
代码语言:javascript
复制
TYPE-POOLS slis .  "类型池
DATA:gt_fieldcat TYPE  slis_t_fieldcat_alv, "fieldcat内表
     gs_fieldcat TYPE  slis_fieldcat_alv.  "fieldcat结构

DATA:BEGIN OF gty_ekpo OCCURS 0 . “输出的内表
    INCLUDE STRUCTURE    ekpo.
DATA: icon TYPE char4.
DATA:END OF gty_ekpo.
Z_TEST_01FORM
代码语言:javascript
复制
*&---------------------------------------------------------------------*
*& 包含               Z_TEST_01FORM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM get_data .
  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE gty_ekpo
    FROM ekpo UP TO 20 ROWS ORDER BY ebeln.

  LOOP AT gty_ekpo.
    gty_ekpo-icon = ICON_GREEN_LIGHT.
    MODIFY gty_ekpo.
  ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form WRITE_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM write_data .
  PERFORM build_fieldcat.
  PERFORM build_alv.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM build_fieldcat .
  CLEAR gt_fieldcat[].
  PERFORM add_fieldcat USING 'ICON'  'ICON'  '1'  '10'  ''.
  PERFORM add_fieldcat USING 'EBELN'  '采购凭证'  '1'  '10'  ''.
  PERFORM add_fieldcat USING 'EBELP'  '项目'  '1'  '10'  ''.
  PERFORM add_fieldcat USING 'MENGE'  '采购订单数量'  '1'  '10'  'X'.

ENDFORM.

FORM add_fieldcat USING p_fieldname
                        p_seltext
                        p_col
                        p_len
                        p_sum.

  CLEAR gs_fieldcat.
  gs_fieldcat-fieldname = p_fieldname.
  gs_fieldcat-seltext_m = p_seltext.
  gs_fieldcat-col_pos = p_col.
  gs_fieldcat-outputlen = p_len.
  gs_fieldcat-do_sum = p_sum.
  APPEND gs_fieldcat TO gt_fieldcat.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form BUILD_ALV
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM build_alv .

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      it_fieldcat = gt_fieldcat
    TABLES
      t_outtab    = gty_ekpo.

ENDFORM.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • ALV概览
  • 基本概念
  • ALV调用涉及内容
  • Fieldcat介绍
  • DEMO
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档