在 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)
这似乎对我有用。希望这对某人有所帮助!
我需要在 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)
这似乎对我有用。希望这对某人有所帮助!