将文本和变量的组合存储在单个变量中

Store a combination of texts and variables in a single variable

我正在用 ABAP 编写一个程序来以不同的格式显示系统日期,例如 DDMMYYYY 和 YYYYDDMM。

代码段是:

WRITE: / 'DATE IN DDYYYYMM FORMAT IS',SY-DATUM+6(2),'.',SY-DATUM+0(4),'.',SY-DATUM+4(2).

产生此输出:

DATE IN DDYYYYMM FORMAT IS 27 . 2007 . 07

是否可以将 DATE IN DDYYYYMM FORMAT IS 27 . 2007 . 07 存储在变量 c 中,这样当我编写代码 WRITE : c. 时它会输出 DATE IN DDYYYYMM FORMAT IS 27 . 2007 . 07?

您可以使用字符串运算符&&来连接文本和变量:

DATA: date_text TYPE c LENGTH 10.
date_text = sy-datum+6(2) && '.' &&
            sy-datum+0(4) && '.' &&
            sy-datum+4(2).
WRITE: / 'DATE IN DDYYYYMM FORMAT IS',
         date_text.

输出将是:

DATE IN DDYYYYMM FORMAT IS 17.2019.07

PS:对于WRITE,您可以将NO-GAP添加到每个元素,以便删除额外的space:

WRITE: / 'DATE IN DDYYYYMM FORMAT IS',
         sy-datum+6(2) NO-GAP,
         '.'           NO-GAP,
         sy-datum+0(4) NO-GAP,
         '.'           NO-GAP,
         sy-datum+4(2) NO-GAP.

输出会像上面那样。

像这样的一个方便的方法是使用string templates

DATA(lv_date) = |{ sy-datum+6(2) }.{ sy-datum+0(4) }.{ sy-datum+4(2) }|.
WRITE: / |DATE IN DDYYYYMM FORMAT IS { lv_date }|.