Solution ALV 不显示前导空格怎么办

作者:郑德鼎 约 3 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
Solution ALV 不显示前导空格怎么办 - 封面图
Solution ALV 不显示前导空格怎么办 - 封面图

在老白的QQ群里(15881589)看到有人讨论字符串空格的问题,想起之前做过的一个需求,把WBS描述按层级显示,代码如下:

*

ls_prps-post1 = repeat( val = ` ` occ = ls_prps-stufe - 1 ) && ls_prps_post1.

但是当放到ALV里展示的时候,空格都被吞了。

当时没办法,只认为是SAP的ALV控件的bug,就把半角空格换成了全角空格。

今天群里知名大佬Sariel说SALV可以显示空格,然后搜到了一下DEMO程序SALV_DEMO_TABLE_REAL_SIMPLE,复制出来,更改后代码如下:

DATA: gt_outtab TYPE TABLE OF sflight.DATA: gr_table TYPE REF TO cl_salv_table. SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE gt_outtab.

gt_outtab[ 1 ]-planetype = ` ` && gt_outtab[ 1 ]-planetype.

CALL METHOD cl_salv_table=>factory IMPORTING r_salv_table = gr_table CHANGING t_table = gt_outtab.

gr_table->get_columns( )->get_column( 'PLANETYPE' )->set_leading_spaces( 'X' ).

gr_table->display( ).

WOC,确实可以显示空格。认知又被颠覆了……

不死心。跟一下程序,看它是怎么实现的。

盲猜SALV也是用的CL_GUI_ALV_GRID的OO控件,所以肯定也会依托屏幕作为容器来展示,于是按" CALL SCREEN

"打断点,顺利DEBUG进到REUSE_ALV_GRID_DISPLAY函数代码中。

然后看函数中FIELDCAT的参数,对比了一下,很容易就发现有这么个不同之处。

Solution ALV 不显示前导空格怎么办 - 封面图
Solution ALV 不显示前导空格怎么办 - 封面图

于是写个DEMO看一下:

DATA: lt_makt LIKE TABLE OF makt, lt_fcat TYPE lvc_t_fcat. APPEND VALUE #( maktx = '1' ) TO lt_makt.APPEND VALUE #( maktx = ' 1' ) TO lt_makt. APPEND VALUE #( fieldname = 'MATNR' ) TO lt_fcat.APPEND VALUE #( fieldname = 'MAKTX' parameter0 = 'X' ) TO lt_fcat. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING it_fieldcat_lvc = lt_fcat TABLES t_outtab = lt_makt EXCEPTIONS OTHERS = 1.

运行效果如下:

Solution ALV 不显示前导空格怎么办 - 封面图
Solution ALV 不显示前导空格怎么办 - 封面图

最后,特别感谢大S(Sariel)。

结论很简单,就是 parameter0参数 。至于其他参数有什么用,期待大家的探索了。

上面的问题分析过程,你学废了吗?

我的SE38插件工具箱——视频介绍:

** https://www.bilibili.com/video/BV1hP4y1N7Qz/ **

联系286503700获取

> **ABAP文章汇总:**

>

> **https://mp.weixin.qq.com/s/djmMeM0qfDxPPwxbjuJABA**

>

> **Excel文章汇总:**

>

> **https://mp.weixin.qq.com/s/NwJ0SzIrn9hVmaCMo-UYyA**

>

> **网盘永久链接:**

>

> **https://mp.weixin.qq.com/s/f_WwKZdwM-vPEstTjjz_eQ**

**关注公众号,点下方菜单打开上面的链接,更方便哦。**

**笔者微信:** **** **286503700(QQ同号)** ****

**如果喜欢,谢谢转发。**

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SolutionALV不显示前导空格怎么办.md」整理生成,仅用于内部技术分享与学习交流。