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

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 输出结果带有空格

方法一&#xff1a; 字段内容前增加空格&#xff0c;需使用全角空格&#xff0c;使用半角空格时&#xff0c;ALV显示无效&#xff0c;空格无法显示&#xff0c; 全角与半角的切换方法&#xff1a;shift空格切换&#xff0c; 如下的标记部分&#xff0c;要想通过ALV显示空格&…...

Opengl ES之踩坑记

前因 最近在尝试使用Opengl ES实现一些LUT滤镜效果&#xff0c;在实现这些滤镜效果的时候遇到一些兼容性的坑&#xff0c;踩过这些坑后我希望把这几个坑分享给读者朋友们&#xff0c; 希望同在学习Opengl ES的朋友们能少走弯路。 关于LUT滤镜相关的介绍&#xff0c;也是这个O…...

设计模式第六讲:责任链模式和迭代器模式详解

一. 责任链模式1. 背景在现实生活中&#xff0c;常常会出现这样的事例&#xff1a;一个请求有多个对象可以处理&#xff0c;但每个对象的处理条件或权限不同。例如&#xff0c;公司员工请假&#xff0c;可批假的领导有部门负责人、副总经理、总经理等&#xff0c;但每个领导能批…...

K8s 架构简介(一)

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

xshell6运行报错:由于找不到mfc110u.dll、MSVCR110.dll无法继续执行代码

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

Baklib知识库管理平台,协助组织提升知识管理水平

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

一文搞懂core-scheduling核心机制

cookie的原理借助于unsigned long型&#xff0c;和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以来经济得到迅速发展&#xff0c;金融行业随着经济发展体系越来越完善。随着西方金融公司和理念的加入中国金融行业开始多样化发展。金融行业在快速发展的同时也引发了许多弊端。如何维护挖掘客户更大需求&#xff1f;如何获取更多优质客户&#xff1f;如何提升网络…...

GT-suite v2016解决许可证过期问题(附新版liscense下载地址)

安装GT-suite v2016时遇到了如图报错的问题。当时的报错找不到了&#xff0c;下图是贴吧相同问题的报错图。 为了解决问题&#xff0c;先根据某网友的如下答复操作&#xff1a; 添加环境变量后仍然有相同报错。 看来需要寻找其他方法。 再尝试着卸载GT-suite v2016&#xff0c…...

小红书商业笔记与普通笔记区别是什么?小红书笔记有哪几种

主攻单一平台&#xff0c;如何迅速打造爆文。针对软文发布类别的选择&#xff0c;小红书商业笔记与普通笔记区别究竟是什么&#xff0c;今天为大家带来的详细分析&#xff0c;告诉你该如何用最少的成本&#xff0c;做出“爆文”。1、小红书的笔记类型我们都知道&#xff0c;小红…...

DataWhale-统计学习方法打卡Task01

学习教材《统计学习方法&#xff08;第二版&#xff09;》李航 统计学习方法&#xff08;第2版&#xff09; by...李航 (z-lib.org).pdf https://www.aliyundrive.com/s/maJZ6M9hrTe 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无…...

Java面试——Spring 事务

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

Python语言零基础入门教程(十九)

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

重生之我是赏金猎人-SRC漏洞挖掘(一)-某SRC测试系统无脑Getshell

0x01 前言 https://github.com/J0o1ey/BountyHunterInChina 欢迎大佬们点个star 0x02 资产收集到脆弱系统 在某src挖掘过程中&#xff0c;本人通过ssl证书对域名资产进行了收集&#xff0c;通过计算域名对应ip段的权重 整理出其C段资产&#xff0c;进行了批量目录扫描 查看…...

Sciter 结合 PReact 实现组件公共逻辑抽离

Sciter 结合 PReact 实现组件公共逻辑抽离 下面例子是获取鼠标移动位置,将这部分逻辑进行抽离 一、使用高阶组件抽离公共逻辑 import {Component } from ./preact.js; export const HOCFactory = (Component) => {class HOC...

OpenTracing协议规范链接

一、官网链接 OpenTracing specificationhttps://opentracing.io/specification/不过目前OpenTracing项目已归档&#xff0c;不再维护。需要参考OpenTelemetry官网链接 Migrating from OpenTracing | OpenTelemetryBackward compatibility with OpenTracing has been a prior…...

金三银四面试必看,自动化测试如何解决日志问题

前言 前几天在员群里&#xff0c;有同学问了一个自动化测试实践中遇到的问题&#xff1a; 持续集成的自动化用例很多&#xff0c;测试环境日志level为debug&#xff0c;日志量大概40G/每天&#xff0c;定位问题时日志查询很慢&#xff0c;该怎么解决&#xff1f; 这个问题可…...

微信怎么开小店?【企业商家微信开店】

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

Java 中FastJson的使用【吃透FastJson】

如果不了解JSON格式&#xff0c;建议先看下&#xff1a;JSON数据格式【学习记录】 JSON序列化、反序列化JavaBean的框架有很多&#xff0c;最常见的Jackson、阿里巴巴开源的FastJson、谷歌的GSON、apache提供的json-lib等&#xff0c;下面我们主要来熟悉一下&#xff1a;Java语…...

Redis5.0集群搭建

Redis集群教程 此文重在介绍 Redis5.0 三主三从集群安装&#xff0c;无复杂难懂的概念&#xff0c;若想深入了解集群原理请参考Redis集群规范。 Redis集群介绍 Redis Cluster 提供一种 Redis 安装方式&#xff1a;数据自动在多个 Redis 节点间分片。 Redis Cluster 提供一定…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...