SAP ABAP ALV Tree 的使用

在 SAP 业务系统中,大量地使用到了ALV Tree 对象,该对象在表格基础上对同类数据

进行归类,并对各分类能进行数据汇总,如图8-10 所示。

以航班表(SPFLI)为例:

(1)按国家、航线、航班分类;

(2)在右半屏对距离字段进行数量汇总;

(3)在右屏输出起飞国家、起飞城市、目的国家、目的城市、距离字段,并控制其输出长

度。

处理过程:

(1)建立程序和屏幕,在屏幕上建立定制控制对象,定义好工作流;

(2)建立好PAI、PBO 事件;

(3)在PAI 中定义建立定制控制对象,并建立AVL Tree 对象;

(4)建立ALV Tree 对象的标题;

(5)建立右屏输出字段清单、字段长度、汇总字段等内容;

(6)建立Tree 分类字段清单及输出先后顺序;

(7)显示ALV Tree 对象。

REPORT ytest32.
DATA: ok_code TYPE sy-ucomm,
      save_ok TYPE sy-ucomm.
DATA: gb_fieldcat TYPE lvc_t_fcat.
DATA: gb_sortfld TYPE lvc_t_sort.
DATA wa_spfli TYPE TABLE OF spfli.
SELECT * INTO TABLE wa_spfli FROM spfli.
DATA: wa_container        TYPE scrfname VALUE 'ALVDATA',
      alv_grid            TYPE REF TO cl_gui_alv_tree_simple,
      wa_custom_container TYPE REF TO cl_gui_custom_container.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS1'.
  IF wa_custom_container IS INITIAL.
    DATA ls_list_comm TYPE slis_t_listheader.
    DATA ls_alist_comm TYPE slis_listheader.
    ls_alist_comm-typ = 'H'.
    ls_alist_comm-info = 'My ALV TREE Testing'.
    APPEND ls_alist_comm TO ls_list_comm.
    PERFORM bldcat.
    PERFORM bldsortfld.
    CREATE OBJECT wa_custom_container
      EXPORTING
        container_name = wa_container.
    CREATE OBJECT alv_grid
      EXPORTING
        i_parent = wa_custom_container.
    CALL METHOD alv_grid->set_table_for_first_display
      EXPORTING
        it_list_commentary = ls_list_comm
        i_structure_name   = 'SPFLI'
      CHANGING
        it_sort            = gb_sortfld
        it_fieldcatalog    = gb_fieldcat
        it_outtab          = wa_spfli.
    CALL METHOD alv_grid->expand_tree
      EXPORTING
        i_level = 1.
  ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  save_ok = ok_code.
  CLEAR ok_code.
  CASE save_ok.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Form BLDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM bldcat .
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'SPFLI'
    CHANGING
      ct_fieldcat      = gb_fieldcat.
  DATA ls_fldcat TYPE lvc_s_fcat.
  LOOP AT gb_fieldcat INTO ls_fldcat.
    CASE ls_fldcat-fieldname.
      WHEN 'COUNTRYFR' OR 'CITYFROM' OR 'COUNTRYTO'
      OR 'CITYTO' OR 'DISTANCE'.
        ls_fldcat-outputlen = 15.
      WHEN OTHERS.
        ls_fldcat-no_out = 'X'.
    ENDCASE.
    IF ls_fldcat-fieldname = 'DISTANCE'.
      ls_fldcat-do_sum = 'X'.
    ENDIF.
    MODIFY gb_fieldcat FROM ls_fldcat.
  ENDLOOP.
ENDFORM. " BLDCAT
*&---------------------------------------------------------------------*
*& Form BLDSORTFLD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM bldsortfld .
  DATA ls_sortfld TYPE lvc_s_sort.
  ls_sortfld-spos = 1.
  ls_sortfld-fieldname = 'COUNTRYFR'.
  ls_sortfld-up = 'X'.
  ls_sortfld-subtot = 'X'.
  APPEND ls_sortfld TO gb_sortfld.
  ls_sortfld-spos = 2.
  ls_sortfld-fieldname = 'CARRID'.
  ls_sortfld-up = 'X'.
  ls_sortfld-subtot = 'X'.
  APPEND ls_sortfld TO gb_sortfld.
  ls_sortfld-spos = 3.
  ls_sortfld-fieldname = 'CONNID'.
  ls_sortfld-up = 'X'.
  ls_sortfld-subtot = 'X'.
  APPEND ls_sortfld TO gb_sortfld.
ENDFORM. " BLDSORTFLD
*逻辑流程序:
process before output.
  MODULE status_0100.
 
process after input.
  MODULE user_command_0100.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

主流数据库类型总结

前言&#xff1a;随着互联网的高速发展&#xff0c;为了满足不同的应用场景&#xff0c;数据库的种类越来越多容易混淆&#xff0c;所以有必要在此总结一下。数据库根据数据结构可分为关系型数据库和非关系型数据库。非关系型数据库中根据应用场景又可分为键值&#xff08;Key-…

深度学习之十二(图像翻译AI算法--UNIT(Unified Neural Translation))

概念 UNIT(Unified Neural Translation)是一种用于图像翻译的 AI 模型。它是一种基于生成对抗网络(GAN)的框架,用于将图像从一个域转换到另一个域。在图像翻译中,这意味着将一个风格或内容的图像转换为另一个风格或内容的图像,而不改变图像的内容或语义。 UNIT 的核心…

微服务--06--Sentinel 限流、熔断

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.微服务保护雪崩问题服务保护方案1.1.请求限流1.2.线程隔离1.3.服务熔断 2.Sentinel2.1.介绍和安装官方网站&#xff1a;[https://sentinelguard.io/zh-cn/](https…

Windows安装EMQX(搭建MQTT服务)

1、EMQX介绍 EMQ X是云原生分布式物联网接入平台。 EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。 Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台。 MQTT 是…

自学MySql(一)

1.安装下载 下载网址 2、将mysql的bin目录添加到环境变量&#xff08;可选&#xff09; 3、使用一下命令测试

最新消息:滴滴 P0 事故原因,原因出来了

最新消息滴滴P0故障原因&#xff0c;是由于k8s集群升级导致的&#xff0c;后面又进行版本回退&#xff0c;由于现在大型互联网公司基本都是基于K8s进行部署的&#xff0c;如果K8s集群一出问题&#xff0c;上面运行的业务Pod和运维系统全部都得宕机&#xff0c;导致没法回滚。 …

深入理解网络阻塞 I/O:BIO

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

源码安装mysql

使用源码安装mysql&#xff0c;这里选择的版本是mysql5.7.35 ,系统是Centos7.6 官网下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 下载源码压缩包 [rootlocalhost ~]# cd /opt[rootlocalhost opt]# wget https://downloads.mysql.com/archives/get/…

一觉醒来!Keras 3.0史诗级更新,大一统深度学习三大后端框架【Tensorflow/PyTorch/Jax】

不知道大家入门上手机器学习项目是首先入坑的哪个深度学习框架&#xff0c;对于我来说&#xff0c;最先看到的听到的就是Tensorflow了&#xff0c;但是实际上手做项目开发的时候却发现了一个很重要的问题&#xff0c;不容易上手&#xff0c;基于原生的tf框架来直接开发模总是有…

ssh-keygen(centos)

A—免密登陆—>B (1)A 机器&#xff0c;通过命令”ssh-keygen -t rsa“, 生成id_rsa,id_rsa.pub authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa : 生成的私钥文件 id_rsa.pub &#xff1a; 生成的公钥文件 know_hosts : 已知的主机公钥…

javaagent字节码增强浅尝

概述 javaagent 技术广泛应用于对代码的增强&#xff0c;比如统计方法执行时间、GC 信息打印、分布式链路跟踪等&#xff1b;实现方式包括 javassist 和 bytebuddy&#xff0c;bytebuddy 是对 javassist 的改进&#xff1b;类似于 spring 中的 AOP&#xff1b; Instrumentati…

SpringBoot application.yml配置文件写法

1&#xff0c;基本介绍 &#xff08;1&#xff09;YAML 是 JSON 的超集&#xff0c;简洁而强大&#xff0c;是一种专门用来书写配置文件的语言&#xff0c;可以替代 application.properties。 &#xff08;2&#xff09;在创建一个 SpringBoot 项目时&#xff0c;引入的 spri…

231129 刷题日报

本周值班第3天&#xff0c;今天终于收到二面电话&#xff0c;一度以为挂了。。加油卷&#xff01; 今天尊重下艾宾浩斯遗忘曲线&#xff0c;重复下前几天看的01背包&#xff0c;子集背包&#xff0c;完全背包。 416. 分割等和子集 518. 零钱兑换 II 38min做了一道新题&#…

OSI七层参考模型及其协议和各层设备

OSI网络模型是开放系统互联&#xff08;Open Systems Interconnection&#xff09;参考模型&#xff0c;它是由国际标准化组织&#xff08;ISO&#xff09;制定的。这个模型将网络系统划分为七个层次&#xff0c;OSI网络模型的七层是&#xff1a;物理层、数据链路层、网络层、传…

【网络奇遇之旅】:那年我与计算机网络的初相遇

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; 计算机网络 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 一. 前言二. 计算机网络的定义三. 计算机网络的功能3.1 资源共享3.2 通信功能3.3 其他功能 四. 计算机网络…

MyBatis教程之简介(一)

1、MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下&#xff0c; iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。 iBatis一词来源于“inter…

android framework分屏“官方”黑屏bug问题发现,你会分析吗?-千里马实战作业挑战

背景 hi&#xff0c;粉丝朋友们&#xff1a; 大家都知道马哥课程以实战为特色&#xff0c;这里的实战就是最贴近公司里面开发的实战项目。这些实战主要来自哪呢&#xff1f; 1、以前在公司的工作积累&#xff0c;自己在公司做过什么&#xff0c;这部分比较好毕竟都是搞过的 2…

常见的类 nn.Conv2d,nn.BatchNorm2D,nn.AdaptiveAvgPool2d

nn.Conv2d理论部分代码部分PaddlePaddle 版torch 版分析 nn.BatchNorm2D理论部分代码部分PaddlePaddle 版Torch 版分析PaddlePaddle 版Torch 版 nn.AdaptiveAvgPool2d理论部分代码部分PaddlePaddle 版分析Torch 版 可以到适配的飞桨公开项目更好的理解&#xff1a;练习 PyTorch…

浅谈安科瑞ASJ继电器在菲律宾矿厂的应用

摘要&#xff1a;对电气线路进行接地故障保护&#xff0c;方式接地故障电流引起的设备和电气火灾事故越来越成为日常所需。针对用户侧主要的用能节点&#xff0c;设计安装剩余电流继电器&#xff0c;实时监控各用能回路的剩余电流状态。通过实时监控用能以及相关电力参数、提高…

分布式搜索引擎elasticsearch

目录 一、了解es1.1、elasticsearch作用1.2 ELK技术栈 二、倒排索引2.1 正向索引2.2倒排索引 三、es的概念3.1 文档和字段3.2 索引和映射3.3 mysql与elasticsearch 一、了解es 1.1、elasticsearch作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功…