方法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. 浅析scrapy与scrapy-redis的区别

    首先,要了解两者的区别,就要清楚scrapy-redis是如何产生的,有需求才会有发展,社会在日新月异的飞速发展,大量相似网页框架的飞速产生,人们已经不满足于当前爬取网页的速度,因此有了分布式爬虫,让 ...

  2. 请停止编写这么多的for循环!

    在这篇文章中,我想和你一起回到基础知识,并讨论 Java 中的 for 循环.老实说,我正在为自己写这篇博客文章,因为我也会这样做.从 Java 8 开始,我们不必在 Java 中编写太多 for 循 ...

  3. 实战webpack系列说明

    01.概念股 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler). 当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(d ...

  4. 06-kubernetes service

    目录 Service ClusterIP 有头 Service 无头 Service Service 说明: Service 是作用于客户端可服务端(Pod)之间,作为一个固定的中间层 主要依赖于ku ...

  5. warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID XXXXXX: NOKEY

    我在使用Centos时,会出现这种错误: 本人实践有效的办法是: 加上"--nogpgcheck"参数 就是在你要执行的语句后面加上该参数就行了! 我当时是为了安装jenkins时 ...

  6. c语言基本数据类型short、int、long、char、float、double大小及命名规则

    C 语言包含的数据类型: 一.数据类型与“模子”short.int.long.char.float.double 这六个关键字代表C 语言里的六种基本数据类型. 怎么去理解它们呢? 举个例子:见过藕煤 ...

  7. Vue项目功能插件

    项目功能插件 vue-router { path: '/', name: 'home', // 路由的重定向 redirect: '/home' } { // 一级路由, 在根组件中被渲染, 替换根组 ...

  8. 【SSL1194】最优乘车

    题面: 正文: 把每个边用链式前向星存起来,边权为\(1\),就可以愉♂快♂地最短路了

  9. js实现冒泡排序(bubble sort)快速排序(quick sort)归并排序(merge sort)

    排序问题相信大家都比较熟悉了.用js简单写了一下几种常用的排序实现.其中使用了es6的一些语法,并且不仅限于数字--支持各种类型的数据的排序.那么直接上代码: function compare (a, ...

  10. 转:轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)

    搜了一下网络上别人封装的HttpClient,大部分特别简单,有一些看起来比较高级,但是用起来都不怎么好用.调用关系不清楚,结构有点混乱.所以也就萌生了自己封装HttpClient工具类的想法.要做就 ...