Functional ALV系列 (01) - ALV开发入门

2024-02-05 13:18

本文主要是介绍Functional ALV系列 (01) - ALV开发入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SAP 的 ALV 全称是 SAP List Viewer,是 SAP 用于显示行列表格化数据的主要方式,从 SAP 推出的技术来看,大体有如下几种

  • 函数生成 ALV,调用 REUSE_ALV*相关的函数
  • ALV Grid 控件框架:SAP 提供 cl_gui_alv_grid 类,以面向对象的方式实现
  • SALV: SAP 另外一种面向对象的实现,与 ALV Grid 比较起来,简化了开发的复杂程度。但不支持 ALV 编辑

Function Module based ALV 是较早出现的开发技术。使用 ALV 显示数据,首先需要知道输出什么数据(内表类型的数据结构),还需要知道输出数据的数据结构(比如第一列显示什么,第二列显示什么,如何对齐,表头是什么,宽度多少,等等)。SAP 将这个数据结构称为 Field catalog。我们用一个简单的例子来讲解 ALV 的基本用法,假设要选取 spfli 表的部分字段在 ALV 中输出。

首先,定义要输出的字段:

然后,从数据库表中获取数据:

根据 gt_spfli 的结构,定义 field catalog,并且调用 REUSE_ALV_GRID_DISPLAY 显示数据:

程序运行界面:


ALV 显示具有行列格式的数据,大致如此。我们发现,程序中相当多的代码都是用于处理 field catalog (属于 slis_t_fieldcat_alv 类型),我们在调用 reuse_alv_grid_display 之前的代码打一个断点,观察 field catalog 的结构:


刚才的程序,很多代码都是用于加工 field catalog,如果是从数据库表中显示数据,能不能自动创建 field catalog 呢? 答案是可以的,我提供一种通用的方法。首先编写代码实现从 DDIC 或者内表中获取所有字段:


根据获取的字段填充 field catalog:

然后在程序中就可以调用 frm_build_fieldcat 来填充 field catalog:

代码量大大降低,该代码具备通用性。

源码

FALV/01-Hello World

这篇关于Functional ALV系列 (01) - ALV开发入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/681027

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言