SAP ABAP 输出结果带有空格
方法一:
字段内容前增加空格,需使用全角空格,使用半角空格时,ALV显示无效,空格无法显示,
全角与半角的切换方法:shift+空格切换,
如下的标记部分,要想通过ALV显示空格,表里需存储为全角空格。
或者
展示结果:
方法二:
一般情况下SAP这边填写内容不会以空格开头,此次需求是EDI平台将客户的叫料计划传到SAP生成销售计划协议计划行,其中有一些客户特定信息需要存下以便后面交货生成ASN信息回传给客户,因为没有SAP前台字段,所以存在自建表中。
其中有个信息“EDI客户件号”客户填写时候会以空格开头,并且中间还可能出现空格或者连续空格。
ALV如果不特别设置参数,默认中间空格会显示,而开头空格不会显示。
自建表中数据
ALV报表查询结果
翻遍ALV常用传入参数类型LVC_S_LAYO和LVC_S_FCAT都没有发现描述与此问题相关的参数。
发现了SE16查看表数据也是用的ALV格式,而且能够显示前导空格。
调试发现SE16查看数据调用的是ALV函数REUSE_ALV_GRID_DISPLAY
查看传入参数IS_LAYOUT并未发现异样,查看传入参数IT_FIELDCAT,看到PARAMETER0打上了“X"。
解决方法:
将ALV传入参数IT_FIELDCAT里的PARAMETER0设为“X",即可输出前导空格。这时候我不反对大家尽情吐槽SAP的晦涩难懂。
如果是OO ALV,使用了类CL_GUI_ALV_GRID,则调用方法SET_TABLE_FOR_FIRST_DISPLAY时将参数IT_FIELDCATALOG里的PARAMETER0设为“X"。
如果是SALV,使用了类CL_SALV_TABLE,则可以调用类CL_SALV_COLUMN的方法SET_LEADING_SPACES实现,参考如下
*SALV相关参数
DATA: GR_TABLE TYPE REF TO CL_SALV_TABLE,GR_FUNCTIONS TYPE REF TO CL_SALV_FUNCTIONS_LIST,GR_DISPLAY TYPE REF TO CL_SALV_DISPLAY_SETTINGS,GR_COLUMNS TYPE REF TO CL_SALV_COLUMNS_TABLE,GR_COLUMN TYPE REF TO CL_SALV_COLUMN_TABLE.FORM FRM_SALV.DATA: LX_MSG TYPE REF TO CX_SALV_MSG.DATA: LV_TITLE TYPE LVC_TITLE,LV_CONT TYPE I,LV_CONTT TYPE LVC_TITLE.ASSIGN GR_DATA->* TO <GT_DYN>.TRY .CL_SALV_TABLE=>FACTORY( IMPORTING R_SALV_TABLE = GR_TABLE CHANGING T_TABLE = <GT_DYN> ).CATCH CX_SALV_MSG INTO LX_MSG.GV_MESSAGE = LX_MSG->GET_TEXT( ).MESSAGE GV_MESSAGE TYPE 'E'.RETURN.ENDTRY.LV_CONT = LINES( <GT_DYN>[] ).LV_CONTT = LV_CONT.CONDENSE LV_CONTT NO-GAPS.CONCATENATE '总计共' LV_CONTT '条数据' INTO LV_TITLE.CONDENSE LV_TITLE NO-GAPS.GR_FUNCTIONS = GR_TABLE->GET_FUNCTIONS( ).GR_FUNCTIONS->SET_ALL( ABAP_TRUE ).GR_DISPLAY = GR_TABLE->GET_DISPLAY_SETTINGS( ).
* gr_display->set_striped_pattern( cl_salv_display_settings=>true ).GR_DISPLAY->SET_LIST_HEADER( EXPORTING VALUE = LV_TITLE ).GR_COLUMNS = GR_TABLE->GET_COLUMNS( ).TRY.LOOP AT GR_COLUMNS->GET( ) INTO DATA(LR_COLUMNS).IF LR_COLUMNS-COLUMNNAME = 'MESG'.GR_COLUMN ?= GR_COLUMNS->GET_COLUMN( LR_COLUMNS-COLUMNNAME ).GR_COLUMN->SET_OUTPUT_LENGTH( VALUE = |50| ).ELSEIF LR_COLUMNS-COLUMNNAME = 'ICON'.GR_COLUMN ?= GR_COLUMNS->GET_COLUMN( LR_COLUMNS-COLUMNNAME ).GR_COLUMN->SET_OUTPUT_LENGTH( VALUE = |5| ).GR_COLUMN->SET_ALIGNMENT( VALUE = IF_SALV_C_ALIGNMENT=>CENTERED ).ELSE.GR_COLUMN ?= GR_COLUMNS->GET_COLUMN( LR_COLUMNS-COLUMNNAME ).IF SY-TCODE <> 'ZFI001'.GR_COLUMN->SET_OUTPUT_LENGTH( VALUE = |20| ).ELSE.GR_COLUMN->SET_OPTIMIZED( VALUE = 'X').ENDIF.GR_COLUMN->SET_ALIGNMENT( VALUE = IF_SALV_C_ALIGNMENT=>LEFT ).GR_COLUMN->SET_LEADING_SPACES( VALUE = 'X' ).CLEAR GS_ZTAB0002.READ TABLE GT_ZTAB0002 INTO GS_ZTAB0002WITH KEY FNAME = LR_COLUMNS-COLUMNNAME.IF SY-SUBRC = 0.GR_COLUMN->SET_LONG_TEXT( GS_ZTAB0002-TEXT_L ).GR_COLUMN->SET_MEDIUM_TEXT( GS_ZTAB0002-TEXT_M ).GR_COLUMN->SET_SHORT_TEXT( GS_ZTAB0002-TEXT_S ).ENDIF.ENDIF.ENDLOOP.CATCH CX_SALV_NOT_FOUND.ENDTRY."IF SY-BATCH IS INITIAL.TRY.GR_TABLE->SET_SCREEN_STATUS(PFSTATUS = 'ZCMRP001_STATUS'REPORT = SY-REPIDSET_FUNCTIONS = GR_TABLE->C_FUNCTIONS_ALL ).CATCH CX_SALV_MSG.ENDTRY.DATA(GR_EVENT) = GR_TABLE->GET_EVENT( ).CREATE OBJECT EVENT_HANDLER.SET HANDLER EVENT_HANDLER->ON_USER_COMMAND FOR GR_EVENT." ENDIF.GR_TABLE->DISPLAY( ).
ENDFORM.
相关文章:

SAP ABAP 输出结果带有空格
方法一: 字段内容前增加空格,需使用全角空格,使用半角空格时,ALV显示无效,空格无法显示, 全角与半角的切换方法:shift空格切换, 如下的标记部分,要想通过ALV显示空格&…...
Opengl ES之踩坑记
前因 最近在尝试使用Opengl ES实现一些LUT滤镜效果,在实现这些滤镜效果的时候遇到一些兼容性的坑,踩过这些坑后我希望把这几个坑分享给读者朋友们, 希望同在学习Opengl ES的朋友们能少走弯路。 关于LUT滤镜相关的介绍,也是这个O…...

设计模式第六讲:责任链模式和迭代器模式详解
一. 责任链模式1. 背景在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批…...

K8s 架构简介(一)
一、前言 在开始学习K8s之前,让我们对容器有一个基本的了解 1.1 什么是容器 一个容器镜像是一个可运行的软件包,其中包含了一个完整的可执行程序,包括代码和运行时需要应用、系统库和全部重要设置的默认值。 通过将应用程序本身ÿ…...

xshell6运行报错:由于找不到mfc110u.dll、MSVCR110.dll无法继续执行代码
今天给大家分享一下我刚装完系统遇到得问题,由于新盟的罗建雨【胡巴】老师帮我给电脑加了固态,又重装了系统,因此电脑里面得所有软件需要重装,在我重装的过程中遇到了一个小问题给大家分享一下,如果大家以后遇到也方便解决。 问题: 安装Xshell时电脑系统报错:“由于找…...

Baklib知识库管理平台,协助组织提升知识管理水平
随着信息时代和知识经济时代的到来,企业内部信息资料繁多冗杂,知识管理逐渐成为各大企业的重要工作之一,企业管理者无不感受到巨大的压力,怎么样将知识进行有效的管理,成为一个难点,并且随着信息不断的更迭…...

一文搞懂core-scheduling核心机制
cookie的原理借助于unsigned long型,和refcount_t引用计数器。 32位64位char *4字节8字节unsigned long4字节8字节 数据结构修改 首先看看实现core scheduling功能对数据结构有哪些修改 task_struct struct task_struct{struct rb_node core_node;unsigned long…...

IP地址在金融行业有哪些应用?
中国加入WTO以来经济得到迅速发展,金融行业随着经济发展体系越来越完善。随着西方金融公司和理念的加入中国金融行业开始多样化发展。金融行业在快速发展的同时也引发了许多弊端。如何维护挖掘客户更大需求?如何获取更多优质客户?如何提升网络…...

GT-suite v2016解决许可证过期问题(附新版liscense下载地址)
安装GT-suite v2016时遇到了如图报错的问题。当时的报错找不到了,下图是贴吧相同问题的报错图。 为了解决问题,先根据某网友的如下答复操作: 添加环境变量后仍然有相同报错。 看来需要寻找其他方法。 再尝试着卸载GT-suite v2016,…...
小红书商业笔记与普通笔记区别是什么?小红书笔记有哪几种
主攻单一平台,如何迅速打造爆文。针对软文发布类别的选择,小红书商业笔记与普通笔记区别究竟是什么,今天为大家带来的详细分析,告诉你该如何用最少的成本,做出“爆文”。1、小红书的笔记类型我们都知道,小红…...
DataWhale-统计学习方法打卡Task01
学习教材《统计学习方法(第二版)》李航 统计学习方法(第2版) by...李航 (z-lib.org).pdf https://www.aliyundrive.com/s/maJZ6M9hrTe 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无…...

Java面试——Spring 事务
目录 1.什么是Spring 事务 2.Spring 事务的开启方式 3.Spring事务的实现方式/原理 4.事务传播机制 5.事务隔离级别 6.事务失效的原因 1.什么是Spring 事务 事务在逻辑上是一组操作,要么执行,要不都不执行。 如下: Begin; insert into…...

Python语言零基础入门教程(十九)
Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 1、异常处理 2、断言(Assertions) python标准异常 什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生&…...

重生之我是赏金猎人-SRC漏洞挖掘(一)-某SRC测试系统无脑Getshell
0x01 前言 https://github.com/J0o1ey/BountyHunterInChina 欢迎大佬们点个star 0x02 资产收集到脆弱系统 在某src挖掘过程中,本人通过ssl证书对域名资产进行了收集,通过计算域名对应ip段的权重 整理出其C段资产,进行了批量目录扫描 查看…...
Sciter 结合 PReact 实现组件公共逻辑抽离
Sciter 结合 PReact 实现组件公共逻辑抽离 下面例子是获取鼠标移动位置,将这部分逻辑进行抽离 一、使用高阶组件抽离公共逻辑 import {Component } from ./preact.js; export const HOCFactory = (Component) => {class HOC...
OpenTracing协议规范链接
一、官网链接 OpenTracing specificationhttps://opentracing.io/specification/不过目前OpenTracing项目已归档,不再维护。需要参考OpenTelemetry官网链接 Migrating from OpenTracing | OpenTelemetryBackward compatibility with OpenTracing has been a prior…...

金三银四面试必看,自动化测试如何解决日志问题
前言 前几天在员群里,有同学问了一个自动化测试实践中遇到的问题: 持续集成的自动化用例很多,测试环境日志level为debug,日志量大概40G/每天,定位问题时日志查询很慢,该怎么解决? 这个问题可…...

微信怎么开小店?【企业商家微信开店】
企业商家入局微信做营销已经是经营规划中必须做的一件事了,对于企业商家来说,最简单直接的方式就是开一个微信小店,然后通过自己宣传推广来在微信小店中成商品。那么企业商家在微信怎么开小店呢?下面内容分享给想在微信开店的企业…...

Java 中FastJson的使用【吃透FastJson】
如果不了解JSON格式,建议先看下:JSON数据格式【学习记录】 JSON序列化、反序列化JavaBean的框架有很多,最常见的Jackson、阿里巴巴开源的FastJson、谷歌的GSON、apache提供的json-lib等,下面我们主要来熟悉一下:Java语…...
Redis5.0集群搭建
Redis集群教程 此文重在介绍 Redis5.0 三主三从集群安装,无复杂难懂的概念,若想深入了解集群原理请参考Redis集群规范。 Redis集群介绍 Redis Cluster 提供一种 Redis 安装方式:数据自动在多个 Redis 节点间分片。 Redis Cluster 提供一定…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...