方法1,也是大家常见的方法通过函数   REUSE_ALV_GRID_DISPLAY

TYPES: BEGIN OF  ty_spfli,   "定义结构
    carrid like spfli-carrid,
    connid like spfli-connid,
  END OF ty_spfli.

DATA: it_spfli TYPE STANDARD TABLE OF ty_spfli.  "定义内表

DATA:
    wa_fieldcat TYPE slis_fieldcat_alv ,    " 相当于工作区
    i_fieldcat  TYPE slis_t_fieldcat_alv ,  " 存放输出栏位名称的列表
    i_layout    TYPE slis_layout_alv .      " 负责整个ALV的全局属性

SELECT carrid connid INTO TABLE it_spfli   "获取内表数据
  FROM spfli
  UP TO 10 ROWS.

PERFORM getdata.
PERFORM islayout.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'   "调用函数
                EXPORTING
                  I_CALLBACK_PROGRAM                = sy-repid
                  IS_LAYOUT                         = i_layout
                  IT_FIELDCAT                       = i_fieldcat[]
                  I_SAVE                            = 'X'
                TABLES
                  t_outtab                          = it_spfli
                EXCEPTIONS
                  PROGRAM_ERROR                     = 1
                  OTHERS                            = 2
                        .
              IF sy-subrc <> 0.
* Implement suitable error handling here
              ENDIF.
FORM getdata.

wa_fieldcat-fieldname   = 'CARRID'.        " 需要输出的内表的字段名
  wa_fieldcat-seltext_l   = '航班号'. " 字段的描述-长字段标签
  wa_fieldcat-seltext_m   = '航班号'. " 字段描述-中字段标签
  wa_fieldcat-seltext_s   = '航班号'. " 字段描述-短字段标签
  wa_fieldcat-fix_column  = 'X' .           " 是否是固定列
  APPEND wa_fieldcat TO i_fieldcat.
  CLEAR  wa_fieldcat.

wa_fieldcat-fieldname   = 'CONNID'.        " 需要输出的内表的字段名
  wa_fieldcat-seltext_l   = '航班连接号'. " 字段的描述-长字段标签
  wa_fieldcat-seltext_m   = '航班连接号'. " 字段描述-中字段标签
  wa_fieldcat-seltext_s   = '航班连接号'. " 字段描述-短字段标签
  wa_fieldcat-fix_column  = 'X' .           " 是否是固定列
  APPEND wa_fieldcat TO i_fieldcat.
  CLEAR  wa_fieldcat.
ENDFORM.

FORM islayout.
  i_layout-zebra                  = 'X' .          " 使ALV界面呈现颜色交替
  i_layout-colwidth_optimize      = 'X' .          " 自动优化列宽
  i_layout-detail_initial_lines   = 'X' .          " 是否出现细节屏幕
ENDFORM.

方法2,也是大家常见的方法通过函数   REUSE_ALV_GRID_DISPLAY_LVC  在使用上会比第一种方法功能实现上多些

TYPES: BEGIN OF  ty_spfli,   "定义结构
    carrid like spfli-carrid,
    connid like spfli-connid,
  END OF ty_spfli.

DATA: it_spfli TYPE STANDARD TABLE OF ty_spfli.  "定义内表

DATA:

wa_fieldcat TYPE lvc_s_fcat ,  " 相当于工作区

i_fieldcat  TYPE lvc_t_fcat ,  " 存放输出栏位名称的列表

i_layout    TYPE lvc_s_layo .  " 负责整个ALV的全局属性

SELECT carrid connid INTO TABLE it_spfli   "获取内表数据
  FROM spfli
  UP TO 10 ROWS.

PERFORM getdata.
PERFORM islayout.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
  EXPORTING
    I_CALLBACK_PROGRAM                = sy-repid
    IS_LAYOUT_LVC                     = i_layout
    IT_FIELDCAT_LVC                   = i_fieldcat[]
    I_DEFAULT                         = 'X'
    I_SAVE                            = 'A'
  TABLES
    t_outtab                          = it_spfli
  EXCEPTIONS
    PROGRAM_ERROR                     = 1
    OTHERS                            = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

FORM getdata.
  wa_fieldcat-fieldname   = 'CARRID'.        " 需要输出的内表的字段名
  wa_fieldcat-scrtext_l   = '航班号'. " 字段的描述-长字段标签
  wa_fieldcat-scrtext_m   ='航班号'.
  wa_fieldcat-scrtext_s   ='航班号'.
  wa_fieldcat-fix_column  = 'X' .           " 是否是固定列
  APPEND wa_fieldcat TO i_fieldcat.
  CLEAR  wa_fieldcat.

wa_fieldcat-fieldname   = 'CONNID'.        " 需要输出的内表的字段名
  wa_fieldcat-scrtext_l   = '航班连接号'. " 字段的描述-长字段标签
  wa_fieldcat-scrtext_m   = '航班连接号'.
  wa_fieldcat-scrtext_s   = '航班连接号'.
  wa_fieldcat-fix_column  = 'X' .           " 是否是固定列
  APPEND wa_fieldcat TO i_fieldcat.
  CLEAR  wa_fieldcat.
ENDFORM.

FORM islayout.

i_layout-zebra                  = 'X' .          " 使ALV界面呈现颜色交替
*  i_layout-colwidth_optimize      = 'X' .          " 自动优化列宽
*  i_layout-detail_initial_lines   = 'X' .          " 是否出现细节屏幕

ENDFORM.

方法3,SALV方法实现ALV展示,是通过静态类的方法实现的。

CLASS lcl_report DEFINITION.

PUBLIC SECTION.
* 定义SALV输出内表
  TYPES: BEGIN OF st_spfli,
       carrid TYPE spfli-carrid,
       connid TYPE spfli-connid,
       cityfrom TYPE spfli-cityfrom,
       cityto   TYPE spfli-cityto,
       distance TYPE spfli-distance,
    END OF st_spfli.

DATA: it_spfli TYPE STANDARD TABLE OF st_spfli.

DATA: o_alv TYPE REF TO cl_salv_table.

METHODS:
         getdata,      "获取数据
         genoutput.    "生成输出内容
ENDCLASS.

CLASS lcl_report IMPLEMENTATION.

METHOD getdata.

SELECT carrid connid cityfrom cityto distance
       INTO TABLE it_spfli
       FROM spfli
       UP TO 10 rows.

ENDMETHOD.

METHOD genoutput.
    DATA: lx_msg TYPE REF TO cx_salv_msg.
    TRY .
       cl_salv_table=>factory(                          "此乃固定格式
         IMPORTING
           r_salv_table = o_alv
         CHANGING
           t_table     = it_spfli
       ).
    CATCH cx_salv_msg INTO lx_msg.

ENDTRY.
    o_alv->display( ).                                  "将数据通过ALV方式显示到屏幕
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  DATA: lo_report TYPE REF TO lcl_report.

create OBJECT lo_report.

lo_report->getdata( ).                               "获取数据
  lo_report->genoutput( ).                             "生成SALV

方法4,面向对象的方法实现ALV展示,是通过静态类的方法实现的(OOALV)。

方法5,dialog屏幕逻辑流显示  (方法4和方法5我会整理完后另外编辑出来)

ABAP分享六 alv显示的几种方式的简单示例的更多相关文章

  1. ABAP分享三 批量上传数据到内表简单示例

    tYPE-POOLS: truxs. DATA: BEGIN OF build, name(10) TYPE c,   age(3)   TYPE c,   sex(2)   TYPE c,   sp ...

  2. ABAP分享五 ALV修改单元格并将修改数据更新到数据表中示例1

    *下面的代码是在alv字段中修改字段的内容,点击保存后就可以保存数据至数据表. TABLES: spfli. DATA: wa_fieldcat TYPE lvc_s_fcat ,  " 相 ...

  3. ABAP分享二 ALV标准范例DEMO汇总

    SAP软件针对ALV的使用方法,提供了ALV标准demo程序: sap提供的ALV标准demo程序,只是展示简单的数据,用function ALV即可,若有复杂的增删改查操作 建议使用OO ALV,下 ...

  4. 【Python】Python figure显示的两种方式

    1. 两种方式: 终端输出图像新窗口输出图像 2. 终端输出命令: %matplotlib inline 新窗口输出命令: %matplotlib qt5 注意此两个语句是命令行输入,若在spyder ...

  5. IDEA实用教程(六)—— 全局设置的两种方式

    五. 全局设置的两种方式 在启动界面进入全局设置 在编码界面进入全局设置 本项目配置 上面的这种设置仅对本项目生效,不会对其他项目生效.请特别注意!!!

  6. 创建TabHost的两种方式的简单分析

    最近做了一个TabHost的界面,在做的过程中发现了一些问题,故和大家分享一下. 首先我的界面如下: 目前就我所知,创建TabHost有两种方式,第一种是继承TabActivity类,然后用getTa ...

  7. Web---创建Servlet的3种方式、简单的用户注册功能

    说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...

  8. Django文件上传三种方式以及简单预览功能

    主要内容: 一.文件长传的三种方式 二.简单预览功能实现 一.form表单上传 1.页面代码 <!DOCTYPE html> <html lang="en"> ...

  9. java web中日期Date类型在页面中格式化显示的三种方式

    一般我们经常需要在将服务器端的Date类型,传到页面进行显示,这就涉及到一个如何格式化显示Date类型的问题,一般我们有三种方式进行: 1)在服务端使用SimpleDateFormat等类格式化成字符 ...

随机推荐

  1. Win10 SQLServer 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    环境:Win10+SQLServer2014 场景:在SQLServer导入Excel时,选择Excel2007格式,提示:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供 ...

  2. CCNA 之 十二 Frame Relay 帧中继

    Fram Relay 帧中继 帧中继简介 VC.LMI.DLCI的概念 帧中继映射 Inverse-ARP的操作 帧中继配置 帧中继简介 分组交换广域网接入方式的一个代表,分组交换是以分组的形式在广域 ...

  3. Nginx负载均衡、SSL原理、生成SSL密钥对、Nginx配置SSL

    6月12日任务 12.17 Nginx负载均衡12.18 ssl原理12.19 生成ssl密钥对12.20 Nginx配置ssl扩展 针对请求的uri来代理 http://ask.apelearn.c ...

  4. Oracle SCN 详解

    一.简介 scn,system change number 在某个时间点定义数据库已提交版本的时间戳标记,Oracle为每个已提交事务分配一个唯一的scn,scn值是对数据库进行更改的逻辑时间点.sc ...

  5. 华为云北京四业务,访问北京一OBS桶,配置指南

    [摘要] 华为云跨数据中心,从北京四访问北京一的OBS桶里面的数据.免去数据迁移的麻烦 1      驱动力 跨region访问OBS桶里面的数据时.如果不走云连接,一个OBS桶域名对应的IP地址,是 ...

  6. JQuery之选择集过滤

    JQuery选择集过滤应用如下: 代码实现: <script src="JS/jquery-3.4.1.js"></script> <script&g ...

  7. mac mysql start ERROR! The server quit without updating PID file

    在mac下安装完mysql,启动时出现error: ERROR! The server quit without updating PID file (/usr/local/var/mysql/nal ...

  8. mac eclipse maven tomcat 运行错误 tomcat HTTP Status 404

    在mac系统下安装好eclipse, maven以及tomcat, 之后运行一个web的helloworld项目,出现错误 tomcat HTTP Status 404. 查看eclipse cons ...

  9. 【强化学习】DQN 算法改进

    DQN 算法改进 (一)Dueling DQN Dueling DQN 是一种基于 DQN 的改进算法.主要突破点:利用模型结构将值函数表示成更加细致的形式,这使得模型能够拥有更好的表现.下面给出公式 ...

  10. mac office软件的安装与破解

    1.mac  office 软件的安装及破解  http://10176523.cn/archives/29/ 下载后安装  切记不要登录 然后用这个文件 破解