Date 如何删除字符文本中的空格?

Date 如何删除字符文本中的空格?,date,concatenation,abap,write,Date,Concatenation,Abap,Write,我编写了一个代码,可以自动从系统中提取与时间相关的信息。如表中所示,t247月份名称的长度固定为10个字符。但在报告屏幕上显示时,它是一个坏图像 我这样打印: WRITE : 'Bugün', t_month_names-ltx, ' ayının'. CONCATENATE gv_words-word '''nci günü' INTO date. CONCATENATE date ',' INTO date. CONCATENATE date gv_year INTO da

我编写了一个代码,可以自动从系统中提取与时间相关的信息。如表中所示,t247月份名称的长度固定为10个字符。但在报告屏幕上显示时,它是一个坏图像

我这样打印:

  WRITE : 'Bugün', t_month_names-ltx, ' ayının'.
  CONCATENATE gv_words-word '''nci günü' INTO date.
  CONCATENATE date ',' INTO date.
  CONCATENATE date gv_year INTO date SEPARATED BY space.
  TRANSLATE   date TO LOWER CASE.
我尝试了
压缩t\u month\u names-ltx NO-GAPS.
方法来删除空格,但这还不够

写后,我可以通过设置空白值静态写入:

  WRITE : 'Bugün', t_month_names-ltx.
  WRITE : 14 'ayının'.
  CONCATENATE gv_words-word '''nci günü' INTO date.
  CONCATENATE date ',' INTO date.
  CONCATENATE date gv_year INTO date SEPARATED BY space.
  TRANSLATE   date TO LOWER CASE.


但这不是一个正确的用法。如何动态实现这一点?

您可以使用字符串类型的临时字段:

DATA l_month TYPE STRING.

l_month = t_month_names-ltx.

WRITE : 'Bugün', l_month.
WRITE : 14 'ayının'.
CONCATENATE gv_words-word '''nci günü' INTO date.
CONCATENATE date ',' INTO date.
CONCATENATE date gv_year INTO date SEPARATED BY space.
TRANSLATE   date TO LOWER CASE.

不能从类型C字段中删除尾随空格,因为它的长度是恒定的。未使用的长度始终用空格填充

但是,在组装字符串之后,可以使用
压缩
无间隙删除字符串中多个空格的任何链

在您编写的代码下面添加压缩日期。,您应该会得到想要的结果

另一种选择是放弃
串联
,而是使用(符号
|
中的字符串文字)进行字符串汇编,这样就不会有包含类型C字段尾随空格的恼人习惯:

DATA long_char TYPE C LENGTH 128.
long_char = 'long character field'.

WRITE |this is a { long_char } inserted without spaces|.
输出:

this is a long character field inserted without spaces

您目前获得的
Bugün Temmuz ayın yirmidört'nci günü,2020
Bugün Temmuz ayın yirmidört'nci günü,2020
。你希望得到什么确切的文本?此外,您希望此文本存储在变量中还是通过WRITE输出?concure对我来说很有用,即使没有
无间隙
。日期字段的类型是什么?它应该是字符串,而不是字符