ABAP学习笔记之——第十一章:Function ALV

news2024/12/25 0:40:47

一、Function ALV

        Function ALV 从名字中可以推出,是由 Function(函数)形式提供,因此开发者只需适当使用以有的功能即可。没有必要创建屏幕也没有必要一一写出代码,因此可认为是生产性比较高的方法。

例:

*function ALV  GRID和LIST报表输出
DATA gt_itab TYPE TABLE OF sflight.

SELECT * FROM sflight INTO TABLE gt_itab.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'    "grid报表
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'    "list报表
  EXPORTING
    i_structure_name = 'SFLIGHT'
  TABLES
    t_outtab         = gt_itab.

二、详细了解FUNCTION ALV函数

1、reuse_alv_grid_display

(1)I_CALLBACK_PROGRAM参数

调用ALV函数返回的程序

(2)I_CALLBACK_PF_STATUS_SET参数

设置ALV程序内的STATUS

(3)I_CALLBACK_USER_COMMAND参数

实现ALV程序的按钮功能,FORM语句名

(4)I_STRUCTURE_NAME参数

设置ALV结构:结构体、表

(5)I_GRID_TITLE参数

ALV GRID的表头标题

(6)I_GRID_SETTINGS参数

设置ALV GRID(编辑时立即调用事件等)

(7)IS_LAYOUT参数

设置ALV布局

 

(8)IT_FIELDCAT参数

设置ALV的构成项目字段(字段目录)

 (9)IT_EXCLUDING参数

删除ALV基本按钮的项目

(10)IT_SORT参数

显示ALV 时设置基本排序字段

(11)IT_FILTER参数

显示ALV 时设置过滤字段

(12)I_SAVE参数

保存ALV布局的选项设置成保存

(13)IS_VARIANT参数

ALV布局后调用的模式定义ALV事件

(14)T_OUTTAB参数

ALV上要输出的数据

 三、练习

TYPE-POOLS:slis.

DATA:gt_fieldcat TYPE slis_t_fieldcat_alv,
     gs_fieldcat TYPE slis_fieldcat_alv.

DATA:gt_events TYPE slis_t_event,
     gs_event  TYPE slis_alv_event.

DATA:gs_layout TYPE slis_layout_alv,
     gs_glay   TYPE lvc_s_glay.

*为了在内表中追加复选框定义结构体类型
TYPES BEGIN OF t_line.
INCLUDE STRUCTURE sflight.
TYPES checkbox TYPE c.
TYPES END OF t_line.

*定义参照结构体类型的内表
DATA gt_itab TYPE TABLE OF t_line WITH HEADER LINE.

SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_itab.

MOVE 'PF_STATUS_SET' TO gs_event-name.
MOVE 'ALV_STATUS_SET' TO gs_event-form.
APPEND gs_event TO gt_events.

MOVE 'DATA_CHANGED' TO gs_event-name.
MOVE 'ALV_DATA_CHANGED' TO gs_event-form.
APPEND gs_event TO gt_events.

*字段目录中追加复选框字段。设置为复选框checkbox属性设置成X,编辑模式edit属性设置成X
CLEAR: gs_fieldcat,gt_fieldcat.
gs_fieldcat-col_pos = 1.
gs_fieldcat-fieldname = 'CHECKBOX'.
gs_fieldcat-checkbox = 'X'.
gs_fieldcat-edit = 'X'.
gs_fieldcat-seltext_m = 'Sel'.
APPEND gs_fieldcat TO gt_fieldcat.

*构造其他必要字段目录
CLEAR gs_fieldcat.
gs_fieldcat-col_pos = 2.
gs_fieldcat-fieldname = 'CARRID'.
gs_fieldcat-checkbox = 'Airline Code'.
APPEND gs_fieldcat TO gt_fieldcat.

CLEAR gs_fieldcat.
gs_fieldcat-col_pos = 3.
gs_fieldcat-fieldname = 'CONNID'.
gs_fieldcat-checkbox = 'Connection Number'.
APPEND gs_fieldcat TO gt_fieldcat.

CLEAR gs_fieldcat.
gs_fieldcat-col_pos = 4.
gs_fieldcat-fieldname = 'FLDATE'.
gs_fieldcat-checkbox = '起飞日期'.
APPEND gs_fieldcat TO gt_fieldcat.

gs_glay-edt_cll_cb = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    i_callback_program      = sy-cprog
    i_grid_settings         = gs_glay
    it_fieldcat             = gt_fieldcat
    it_events               = gt_events
    is_layout               = gs_layout
    i_callback_user_command = 'ALV_USER_COMMAND'
  TABLES
    t_outtab                = gt_itab.

FORM alv_user_command USING p_ucomm LIKE sy-ucomm
      p_selfield TYPE slis_selfield.
  CASE p_ucomm.
    WHEN '&IC1'.
      READ TABLE gt_itab INDEX p_selfield-tabindex.
      gt_itab-checkbox = 'X'.
      MODIFY gt_itab INDEX p_selfield-tabindex.
    WHEN 'SAVE'.
      MODIFY sflight FROM TABLE gt_itab.
      IF sy-subrc EQ 0.
        COMMIT WORK.
      ELSE.
        ROLLBACK WORK.

      ENDIF.
    WHEN OTHERS.
  ENDCASE.
ENDFORM.

FORM alv_status_set USING pt_extab TYPE slis_t_extab.
  CLEAR:pt_extab[].
  SET PF-STATUS 'STANDARD_FULLSCREEN'.LSLVC_FULLSCREENEVT
ENDFORM.


FORM alc_data_changed USING pcl_data TYPE REF TO cl_alv_changed_data_protocol.
  DATA:l_name(20),
        ls_cells TYPE lvc_s_modi.
  FIELD-SYMBOLS <fs_value>.

  LOOP AT pcl_data->mt_mod_cells INTO ls_cells.
    CLEAR gt_itab.
    READ TABLE gt_itab INDEX ls_cells-row_id.

    CONCATENATE 'GT_ITAB-' ls_cells-fieldname INTO l_name.
    ASSIGN (l_name) TO <fs_value>.

    <fs_value> = ls_cells-value.
    MODIFY gt_itab INDEX  ls_cells-row_id.


  ENDLOOP.
ENDFORM.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【测绘程序设计】——大地坐标与空间直角坐标转换

本文分享了 测绘程序设计——大地坐标(B,L,H)与空间直角坐标(X,Y,Z)转换(C#版与Python版),相关源代码(绝对完整,直接运行)与使用示例如下。 目录 Part.Ⅰ 使用示例Chap.Ⅰ C#版Chap.Ⅱ Python版Part.Ⅱ 代码分析Chap.Ⅰ C#版Chap.Ⅱ Python版Part.Ⅲ 源码下载Part.Ⅰ…

12.9 总结

一.复制带有随机指针的链表 要求结构和val都是一样 这个题目我们可以建立一个map表,把新的链表和旧的链表每个节点都构成一组key-val对应 然后遍历旧链表.找到对应的next值和random值 思路: 方法1:迭代map class Solution { public Node copyRandomList(Node head) { if(hea…

Mysql 8.0.31彻底卸载

我们有时需要将mysql卸载重新安装&#xff0c;然而如果不注意其中的细节&#xff0c;只是使用apt remove mysql-server命令是卸载不干净的&#xff0c;即使使用了apt purge mysql-server命令进行卸载再重新安装的mysql还是会保留着原来的密码。正确的操作方式是下面这样子的。 …

百度智能云发布基于Ampere® Altra®的高能效云服务器GR1实例

2021年&#xff0c;百度公布了2030年碳中和目标以及6条科学实现路径。首要举措便是建设更环保的数据中心。百度自建的数据中心PUE一直处于非常领先的位置。百度一直秉持“科技为更好”的可持续发展理念&#xff0c;依托全栈和领先的人工智能技术和丰富的产业实践&#xff0c;在…

前端项目工程化流程(简陋版)

背景 最近想要自己做开始一个项目&#xff0c;然后发现好像挺久没有出 从 0 开始 一个项目了&#xff0c;对项目的一些工程化方面的流程有点生疏了&#xff0c;感觉就是知道一个大概的流程&#xff0c;很多都要靠搜索引擎来帮忙&#xff0c;我就想整理一下&#xff0c;对于前端…

在node.js中使用​ JsonWebToken模块进行token加密

目录 一、token 1、什么是token 2、作用 二、Express中实现token的方法&#xff1a; 1、使用JWT模块&#xff1a;JsonWebToken 2、token验证的流程 3、Express中实现过程 ​ &#xff08;1&#xff09;安装、导入JsonWebToken模块 ​ &#xff08;2&#xff09;在登录…

stm32f767之PWM

仅作笔记&#xff0c;很多内容参考网友文章。 PWM 输出&#xff0c;是利用定时器的比较输出功能&#xff0c;所以就是配置定时器。 1&#xff0c;选择定时器8 tim1和tim8为高级定时器 一般我们选择内部时钟&#xff0c;也就是由APB 外设时钟提供。根据选择的输出IO口&#x…

手把手教你搭建视频去重系统

#01 背景 如今&#xff0c;短视频平台对各类搬运视频的检测力度和精确度越来越高了。无论是影视号的剪辑&#xff0c;还是从油管搬运&#xff0c;即使做了各类复杂的视频变换&#xff0c;都很容易被检测出来。作者都会收到提醒&#xff0c;严重的甚至被封号。 乔布斯演讲原始视…

您公司的财务流程是世界一流的还是二流的?

您公司的财务流程是世界一流的还是二流的&#xff1f; 组织开始意识到&#xff0c;提高财务和会计流程的有效性和效率不仅是财务部门内部的目标&#xff0c;而且对整个公司的战略目标也意义重大。首席财务官必须扪心自问——我们的财务流程是世界一流的还是二流的&#xff0c;…

Mac安装NDK android-ndk-r25b-darwin.dmg

文章目录废话连片教程片段1. 打开要存放的目录.2. 打开 .app 的包内容配置环境变量 MAC (在终端/cmd/命令行中运行)废话连片 最近在用 xx存图 下载 小蓝鸟、油管 视频, 一开始觉得挺好用的, 直到… 免费下载次数已用完. 就想着自己弄一个下载视频的小工具, 便查询到了 python …

基于JavaWeb的宿舍管理系统的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

网页设计期末课程大作业:基于HTML+CSS+JavaScript+Bootstrap制作响应式网站信息技术交流博客(7页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

gradle的访问目录和支付宝的注意事项

经过我100多次的测试发现。gradle项目不管是打包 还是不打包。他的访问目录都是 config.class.getResourceAsStream("config.properties") 当前class所在的目录&#xff0c; 而支付宝的sdk。他的访问文件的目录是项目的根目录。 比如 你的项目文件是这个样子。运…

QT-自定义本地翻译模块,简单实用

QT-自定义本地翻译模块&#xff0c;简单实用前言一、演示效果二、核心模块1.本地xml的操作过程2、翻译模块三、程序链接前言 QT的国际语言每次如果有字符串变动&#xff0c;都需要重新再编译一下&#xff0c;真的是顶不住&#xff0c;说实话&#xff0c;用起来真的是不习惯。 …

DataX-Web 源码调试及打包

文章目录1、还原 dataxweb 数据库2、修改配置文件3、打包前文回顾&#xff1a; 《DataX 及 DataX-Web 安装使用详解》 《DataX 源码调试及打包》 源码地址&#xff1a;https://github.com/WeiYe-Jing/datax-web 1、还原 dataxweb 数据库 sql 脚本在目录 /bin/db/datax-web.sq…

Keycloak之17.0.1 版本与Jenkins安装与集成-yellowcong

jekins和keycloak的认证,是依赖于 Keycloak Authentication Plugin 插件,进行认证处理,这个配置还是相对比较简单的,最坑的一点就是如果配置错误了,如何恢复的问题。 keycloak 应用集成 Keycloak之安装与启动-yellowcong Keycloak之功能介绍与简单使用-yellowcong Keyc…

BW取月底月初日期函数

BW取月底内置的函数与SAP有差异&#xff0c;为 SN_LAST_DAY_OF_MONTH&#xff0c;如下 很简单的逻辑&#xff0c;主要通过2月的日期进行判断为平年还是闰年&#xff0c;其他月末日期固定 取月底函数&#xff1a; call function SN_LAST_DAY_OF_MONTH EXPORTING DAY_IN …

如何下载不同格式的卫星地图

如何下载不同格式的卫星地图 发布时间&#xff1a;2018-01-17 版权&#xff1a; 务名称&#xff1a;下载任务的名称&#xff0c;可重命名 经纬度范围当前下载区域所在的经纬度范围&#xff0c;不可更改 保存路径&#xff1a;下载你选择区域的文件保存的地方&#xff0c;可更…

基于jsp+mysql+ssm在线培训教育平台-计算机毕业设计

项目介绍 本在线培训教育课程平台系统主要包括系统用户管理模块、课程类别管理模块、课程信息管理、站内新闻管理、登录模块、和退出模块等多个模块。它帮助在线教育平台实现了信息化、网络化&#xff0c;通过测试&#xff0c;实现了系统设计目标,系统采用了jsp的mvc框架,SSM(…

Allegro如何检查过孔类型是否使用正确操作指导

Allegro如何检查过孔类型是否使用正确操作指导 Allegro可以检查PCB上过孔类型是否使用正确,让使用错误的过孔以DRC的形式报出来,具体操作如下 选择setup-Constraint-modes 出现Analysis mode的窗口,选择Physical Modes,Vialist DRC选择on开关,并且保证On-line DRC是勾选…