是否有任何FM消除了数量字段中不需要的零点。

2020-08-21 09:11发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


要求:

输入输出

100.00 100

100.123 100.123

100.250 100.25

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


要求:

输入输出

100.00 100

100.123 100.123

100.250 100.25

付费偷看设置
发送
6条回答
huskylover
1楼 · 2020-08-21 09:46.采纳回答

您可以仅使用带有DECIMALS 0的简单WRITE语句-有关WRITE格式选项的信息,请参阅SAP帮助:写-int_format_options

SAP Help中的示例:

数据:pack TYPE p LENGTH 8 DECIMALS 4 VALUE'1234.5678',
 formatted_text TYPE C长度10。
 将数据包写入formatted_text NO-GROUPING小数位2。
 cl_demo_output => display_text(formatted_text)。

" 1234.5678"的格式结果为" 1234,57"。

HTH

Dominik Tylczynski

歪着头看世界
2楼-- · 2020-08-21 09:37

您是否尝试过在Google中搜索? Google->"删除结尾的0个网站: sap.com "发现4k以上的匹配,首页从上到下都是 SCN帖子问同样的问题。

一些旧答案中提到了FM FTR_CORR_SWIFT_DELETE_ENDZERO。 它不会发布给客户,而是将" 100.00"转换为" 100"。 而不是" 100"。 但是它只有几行代码,因此在此基础上创建自己的实用程序方法应该并不困难。

昵称总是被占用
3楼-- · 2020-08-21 09:50

为什么要这样做?

如果它是Z字段,您可以轻松实现转换退出,例如 ZZQTY并将此转换出口分配给数据元素的域。 到目前为止,以下编码尚不完整,因为您可能还必须考虑与数字显示有关的用户设置。 它很快又很脏,但是您可能会明白。

您将必须实现两个功能:

  • CONVERSION_EXIT_ZZQTY_OUTPUT
 FUNCTION  conversion_exit_zzqty_output。
 *" ------------------------------------------------  ----------------------
 *" *"本地接口:
 *"正在导入
 *" VALUE(输入)
 *"汇出
 *" VALUE(输出)
 *" ------------------------------------------------  ----------------------

   输出=输入。

   SHIFT输出右删除拖尾''。
   SHIFT输出右删除拖尾'0'。
   SHIFT输出RIGHT DELETING TRAILING'。'。

 结束功能。
 
  • CONVERSION_EXIT_ZZQTY_INPUT
功能conversion_exit_zzqty_input。
 *" ------------------------------------------------  ----------------------
 *" *"本地接口:
 *"正在导入
 *" VALUE(输入)
 *"汇出
 *" VALUE(输出)
 *" ------------------------------------------------  ----------------------

   数据:lv_qty TYPE zquantity。

   尝试。
       lv_qty =输入。
       输出= lv_qty。
     捕获cx_root。
       清除输出。
   ENDTRY。

 结束功能。
 

如果这是一个标准字段和一个标准程序,我将认真考虑此请求,并愿意尝试修改屏幕输出而不是域,但这会做很多工作。/p>

N-Moskvin
4楼-- · 2020-08-21 09:56

如果固定了小数位数,则可以使用,但是在OP的示例中,可以是0到3个小数位数。

落灬小鱼
5楼-- · 2020-08-21 09:53

谢谢大家宝贵的时间: )

在处理字符时(如果仅在运行时知道类型,例如删除整数0或转储时出现语法错误),删除尾随的0总是将1变成100。

< p>与提出的问题一样,假设值是从带有小数的数字类型传递的。 所以,当然,您必须小心并知道自己在做什么;)

一周热门 更多>