在 sapscript 中,如何 trim/offset 从字符串的右侧开始?

In sapscript, how do I trim/offset from the right of a string?

我需要在 SAPScript 中从右边 trim 一个字符串。似乎没有实现此功能的功能。 &myfield+3& 从左侧仅 trims。

有没有办法从右边trim? offset 可以接受负值吗?

我的最终目标是取一个数字,比如一个数量; 12.43 并将其转换为:001243.

  • 6 个字符长
  • 用零填充左边
  • 没有特殊字符(小数点或千位分隔符)

最终我不得不先定义一个字段并进行初始数字格式化:

/:DEFINE &myfield& = &qtyfield(.2CT)&

以上

  • 将数字设置为 2 个小数点 (.2)
  • space 压缩 (C)
  • 删除千位分隔符 (T)

然后我在打印例程中调用一个函数来执行特殊字符剥离:

/:PERFORM get_unformatted_value IN PROGRAM zbc_rle_ean128_label
/:USING &myfield&
/:CHANGING &myfield&
/:ENDPERFORM

然后我可以这样做最终输出:

/ &myfield(K6RF0)&

其中:

  • 忽略任何转化 (K)
  • 将输出长度设置为 6 并将其右对齐 (6R)
  • 并在左侧填充零 (F0)

这似乎对我有用。希望这对某人有所帮助!