当前位置: 首页 > news >正文

ABAP开发中的前导零和末尾零

前导零和末尾零是指分别出现在数字序列中第一个非零数字之前和最后一个非零数字之后的任何零数字。

关于前导 0

在 SAP 系统中,大多数字母数字字段在数据库中存储时都带前导零,完全占用字段的定义长度。但是,当字段显示给最终用户时,前导零就被省略掉了。

SAP 通过使用所谓的转换出口将数值从外部(输出)格式转换为内部(输入)格式来处理这种数据规范化过程。

添加或删除前导零是 ABAP 开发人员日常生活中的常见要求。随着语法的不断发展,实现上述要求的可能性也越来越多。

转换退出示例

下面的示例使用的是订单号数据元素 AUFNR,其数据类型为 CHAR,长度为 12。

DATA(lv_order_number) = CONV aufnr( 12345 ).

在 ABAP 字典中打开我们要转换的字段域,就会发现我们可以使用 “ALPHA ”转换例程。开发人员可以使用这些功能模块在大多数数字/ID 类型字段中添加和删除前导零。

ABAP 词典中的域 AUFNR (SE11):

函数模块

在过去,ALPHA 转换例程的功能模块是添加和删除零的最佳方法。

DATA(lv_order_number) = CONV aufnr( 12345 ).
WRITE |{ lv_order_number }|.    "Output: 12345"Add leading zeros
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput  = lv_order_numberIMPORTINGoutput = lv_order_number.WRITE |{ lv_order_number }|.    "Output: 000000012345"Remove leading zeros
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'EXPORTINGinput  = lv_order_numberIMPORTINGoutput = lv_order_number.WRITE |{ lv_order_number }|.    "Output: 12345

使用字符串模板的简易形式

自从 ABAP 7.4 中的字符串模板和 ABAP 7.2 中的嵌入式 ALPHA 表达式出现后,ALPHA 转换的结果就可以在一行中实现。

DATA(lv_order_number) = CONV aufnr( 12345 ).
WRITE |{ lv_order_number }|.    "Output: 12345lv_order_number =  |{ lv_order_number ALPHA = IN }|.
WRITE |{ lv_order_number }|.    "Output: 000000012345lv_order_number =  |{ lv_order_number ALPHA = OUT }|.
WRITE |{ lv_order_number }|.    "Output: 12345

带构造函数运算符 CONV 的内联声明

我们甚至可以在一行中声明一个变量并填充前导零,这样就不需要可能的辅助变量了。

DATA(lv_order_number) = CONV aufnr( |{ '12345' ALPHA = IN }| ).
WRITE |{ lv_order_number }|.    "Output: 000000012345

其他例子

用 SHIFT 删除前导零

SHIFT 语句可用于删除零字符串。

DATA(lv_order_number) = CONV aufnr( |{ '12345' ALPHA = IN }| ).
WRITE |{ lv_order_number }|.    "Output: 000000012345SHIFT lv_order_number LEFT DELETING LEADING '0'.
WRITE |{ lv_order_number }|.    "Output: 12345

用 OVERLAY 添加尾数零

OVERLAY 语句可用于为字符串填充尾部的零。

DATA(lv_order_number) = CONV aufnr( 12345 ).
WRITE |{ lv_order_number }|.    "Output: 12345"Helper variable of type string, without any leading or trailing zeros
DATA(lv_order_number_string) =  |{ lv_order_number ALPHA = OUT }|.
OVERLAY lv_order_number_string WITH '000000000000'.
WRITE |{ lv_order_number_string }|.    "Output: 123450000000

相关文章:

ABAP开发中的前导零和末尾零

前导零和末尾零是指分别出现在数字序列中第一个非零数字之前和最后一个非零数字之后的任何零数字。 关于前导 0 在 SAP 系统中,大多数字母数字字段在数据库中存储时都带前导零,完全占用字段的定义长度。但是,当字段显示给最终用户时&#x…...

Baklib赋能数字内容体验个性化推荐提升用户体验的未来之路

内容概要 随着数字化时代的不断发展,用户对内容消费的需求日益多样化,个性化推荐成为提升用户体验的重要手段。Baklib以其先进的技术手段,在数字内容领域内积极推动个性化推荐的实施,从而满足用户在信息获取和内容消费中的独特需…...

关于Redis的持久化

目录 RDB 1.手动触发 2.自动触发 AOF aof的重写机制 Redis虽然是一个内存数据库,但是也是可以将数据存储到硬盘中的,也就是持久化。硬盘的数据是在Redis重启的时候,用来恢复内存中的数据的,即对数据做了一个备份。Redis实现持…...

【C语言标准库函数】指数与对数函数:exp(), log(), log10()

目录 一、头文件 二、函数简介 2.1. exp(double x) 2.2. log(double x) 2.3. log10(double x) 三、函数实现(概念性) 3.1. exp(double x) 的模拟实现 3.2. log(double x) 和 log10(double x) 的模拟实现 四、注意事项 4.1. exp(double x) 的注…...

2024美团春招硬件开发笔试真题及答案解析

目录 一、选择题 1、在 Linux,有一个名为 file 的文件,内容如下所示: 2、在 Linux 中,关于虚拟内存相关的说法正确的是() 3、AT89S52单片机中,在外部中断响应的期间,中断请求标志位查询占用了()。 4、下列关于8051单片机的结构与功能,说法不正确的是()? 5、…...

Python内置函数map(), list(), len(), iter(), hex(), hash()的详细解析,包括功能、语法、示例及注意事项

1. map(function, iterable, ...) 功能:对可迭代对象中的每个元素应用指定函数,返回一个迭代器。 参数: function:要执行的函数(可以是lambda表达式)。 iterable:一个或多个可迭代对象&#x…...

[LVGL] 在VC_MFC中移植LVGL

前言: 0. 在MFC中开发LVGL的优点是可以用多个Window界面做辅助扩展【类似GUIguider】 1.本文基于VC2022-MFC单文档框架移植lvgl8 2. gitee上下载lvgl8.3 源码,并将其文件夹改名为lvgl lvgl: LVGL 是一个开源图形库,提供您创建具有易于使用…...

MySQL视图索引操作

创建学生表; mysql> create table Student(-> Sno int primary key auto_increment,-> Sname varchar(30) not null unique,-> Ssex char(2) check (Ssex男 or Ssex女) not null,-> Sage int not null,-> Sdept varchar(10) default 计算机 not …...

一次奇怪的空指针问题分析:事务、死锁与隐式回滚

最近我们在排查一个诡异的 空指针异常,整个分析过程可以说是跌宕起伏,最终的结论也颇具隐蔽性。今天就把这个问题分享出来,希望对大家有所帮助。 问题现象 在系统中,我们有 单据 B,它通过一个 关联 ID 字段与 上级单…...

解决aspose将Excel转成PDF中文变成方框的乱码问题

原文网址:解决aspose将Excel转成PDF中文变成方框的乱码问题_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决aspose将Excel转成PDF中文变成方框的乱码问题。 问题描述 用aspose将word、excel等转成PDF后,英文展示正常,但中文全部变成了…...

.net8.0使用EF连接sqlite数据库及使用Gridify实现查询的简易实现

EF Core EF Core 是一个流行的对象关系映射(ORM)框架,它简化了与数据库的交互,提供了一个高效、灵活且易于使用的数据访问层。 Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技…...

2025.2.5——五、[网鼎杯 2020 青龙组]AreUSerialz

题目来源&#xff1a;BUUCTF [网鼎杯 2020 青龙组]AreUSerialz 一、打开靶机&#xff0c;整理信息 直接得到一串php代码&#xff0c;根据题目可以看到还有序列化 二、解题思路 step 1&#xff1a;代码审计 <?phpinclude("flag.php");highlight_file(__FILE__…...

电风扇各国检测认证详细介绍美国FCC+UL欧盟CE+ROHS日本PSE+METI备案+英国UKCA

美国 &#xff1a; FCC认证 &#xff1a;产品进入美洲市场的通行证&#xff0c;需通过FCC SDOC认证。 FCC第15部分B: 该标准适用于非故意辐射设备&#xff0c;如家用电器、电脑设备等。它规定了这些设备在电磁环境中不会产生过多的辐射。 ​射频标准: FCC第15部分C:该标准适…...

Flutter Isolate解决耗时任务导致卡死

先来对比一下在Flutter的ui主线程下直接计算一个耗时任务的情况&#xff1a; import package:flutter/material.dart;void main() {runApp(const MaterialApp(home: H(),)); }class H extends StatefulWidget {const H({super.key});overrideState<H> createState() >…...

使用deepseek快速创作ppt

目录 1.在DeekSeek生成PPT脚本2.打开Kimi3.最终效果 DeepSeek作为目前最强大模型&#xff0c;其推理能力炸裂&#xff0c;但是DeepSeek官方没有提供生成PPT功能&#xff0c;如果让DeepSeek做PPT呢&#xff1f; 有个途径&#xff1a;在DeepSeek让其深度思考做出PPT脚本&#xf…...

STM32的HAL库开发---高级定时器---输出比较模式实验

一、高级定时器输出比较模式实验原理 定时器的输出比较模式总共有8种&#xff0c;本文使用其中的翻转模式&#xff0c;当TIMXCCR1TIMXCNT时&#xff0c;翻转OC1REF的电平&#xff0c;OC1REF为输出参考信号&#xff0c;高电平有效&#xff0c;OC1REF信号连接到0C1上面&#xff…...

python Excel 表读取合并单元格以及清除空格符

读取合并单元格并保留合并信息 读取合并单元格并保留合并信息清除各单元格的空格和换行符&#xff0c;并去除列名中的空格和换行符 读取合并单元格并保留合并信息 当我们只是使用 pandas 的 read_excel 方法读取 Excel 文件时&#xff0c;我们可能会遇到一个很棘手的问题&…...

额外题目汇总2-链表

链表 1.24. 两两交换链表中的节点 力扣题目链接(opens new window) 给定一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后的链表。 你不能只是单纯的改变节点内部的值&#xff0c;而是需要实际的进行节点交换。 思路 使用虚拟头结点会很方便&#xff…...

C#控件开发6—指示灯

按钮功能&#xff1a;手自动旋转&#xff0c;标签文本显示、点击二次弹框确认&#xff08;源码在最后边&#xff09;&#xff1b; 【制作方法】 找到控件的中心坐标&#xff0c;画背景外环、内圆&#xff1b;再绘制矩形开关&#xff0c;进行角度旋转即可获得&#xff1b; 【关…...

探索从传统检索增强生成(RAG)到缓存增强生成(CAG)的转变

在人工智能快速发展的当下&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已成为众多应用的核心技术。检索增强生成&#xff08;RAG&#xff09;&#xff08;RAG 系统从 POC 到生产应用&#xff1a;全面解析与实践指南&#xff09;和缓存增强生成&#xff08;CAG&#x…...

MPC Video Renderer深度解析:构建专业级HDR视频渲染器的完整指南

MPC Video Renderer深度解析&#xff1a;构建专业级HDR视频渲染器的完整指南 【免费下载链接】VideoRenderer RTX HDR modded into MPC-VideoRenderer. 项目地址: https://gitcode.com/gh_mirrors/vid/VideoRenderer MPC Video Renderer是一款专为现代HDR视频播放设计的…...

两端间隔数总个数

两端间隔数总个数 结尾序号 - 开头序号 1需要将索引还原成长度&#xff0c;索引1就好了...

UOS20远程桌面XRDP配置指南:告别黑屏卡顿,轻松实现Windows远程连接

UOS20远程桌面XRDP配置实战&#xff1a;从零搭建流畅的Windows远程控制环境 在混合办公成为常态的今天&#xff0c;跨平台远程控制需求激增。UOS20作为国产操作系统的代表&#xff0c;其XRDP服务能让Windows用户无缝接入&#xff0c;但配置过程中的黑屏、卡顿问题常令人却步。…...

SDMatte效果深度评测:复杂发丝与透明物体的抠图表现

SDMatte效果深度评测&#xff1a;复杂发丝与透明物体的抠图表现 1. 开篇&#xff1a;当AI遇到抠图难题 抠图技术发展了几十年&#xff0c;但遇到复杂发丝和透明物体时&#xff0c;传统方法往往束手无策。直到AI技术的介入&#xff0c;这个老大难问题才有了突破性进展。SDMatt…...

VSCode远程开发终极指南:5分钟搞定跳板机+服务器免密配置(附SSH密钥生成教程)

VSCode远程开发终极指南&#xff1a;5分钟搞定跳板机服务器免密配置 每次连接远程服务器都要输入密码、反复跳转终端&#xff0c;是不是已经让你精疲力尽&#xff1f;作为开发者&#xff0c;我们值得拥有更优雅的远程开发体验。今天要分享的这套方案&#xff0c;不仅能让你在VS…...

League-Toolkit:基于LCU API的英雄联盟本地化效率工具集

League-Toolkit&#xff1a;基于LCU API的英雄联盟本地化效率工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在英雄联盟的…...

tao-8k在AI应用开发中的价值:为LangChain+LlamaIndex提供高质量向量底座

tao-8k在AI应用开发中的价值&#xff1a;为LangChainLlamaIndex提供高质量向量底座 1. 为什么需要高质量的文本嵌入模型 在构建AI应用时&#xff0c;我们经常需要将文本转换为计算机能够理解的数值表示&#xff0c;这就是文本嵌入&#xff08;embedding&#xff09;的核心任务…...

打造专属功能生态:开源工具扩展系统全攻略

打造专属功能生态&#xff1a;开源工具扩展系统全攻略 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 开源工具扩展系统是一套基于动态链接库&#xff08;DLL&#xff09;的功能…...

SmallThinker-3B部署实录:在16GB内存笔记本上稳定运行长链推理服务

SmallThinker-3B部署实录&#xff1a;在16GB内存笔记本上稳定运行长链推理服务 1. 环境准备与快速部署 想要在普通笔记本上运行大模型推理服务&#xff1f;SmallThinker-3B-Preview让你用16GB内存就能实现这个目标。这个模型基于Qwen2.5-3b-Instruct微调而来&#xff0c;专门…...

Phi-3-vision-128k-instruct 代码理解能力展示:解析截图中的复杂算法伪代码

Phi-3-vision-128k-instruct 代码理解能力展示&#xff1a;解析截图中的复杂算法伪代码 1. 引言 最近在GitHub上看到一个有趣的项目&#xff0c;测试了Phi-3-vision-128k-instruct模型对编程相关图像的理解能力。作为一个经常需要阅读算法伪代码的程序员&#xff0c;我对这个…...