在BDC调用中,由于用户设置不同,导致金额、日期等字段的输入格式不正确。此处给出 自创 金额转换FM 并配有 调用方式。

  1. function zgm_conver_cuur.
  2. *"----------------------------------------------------------------------
  3. *"*"Local Interface:
  4. *" IMPORTING
  5. *" REFERENCE(I_STRIN)
  6. *" REFERENCE(I_DECIMALS) TYPE I
  7. *" EXPORTING
  1.  
  1.  
  1. *" REFERENCE(E_STROUT)
  2. *"----------------------------------------------------------------------
  3. data:l_dcpfm like usr01-dcpfm,
  4. l_strin type char20,
  5. l_reverse type char20,
  6. l_strout type char20,
  7. l_str1 type string,
  8. l_str2 type string,
  9.  
  10. l_mask type string.
  11. data:l_lenth type i.
  12. data:l_lenth2 type i.
  13. clear l_mask.
  14. l_str2 = '___'.
  15. case i_decimals.
  16. when 2.
  17. l_str1 = '__'.
  18. when 3.
  19. l_str1 = '___'.
  20. when 4.
  21. l_str1 = '____'.
  22. when others.
  23. endcase.
  24.  
  25. l_strin = i_strin.
  26. "remove Punctuation by space
  27. replace '.' with '' into l_strin.
  28. condense l_strin no-gaps.
  29. l_lenth = strlen( l_strin ).
  30. l_lenth2 = l_lenth - i_decimals.
  31.  
  32. case l_lenth2.
  33. when 1 or 2 or 3.
  34. when 4 or 5 or 6.
  35. when others.
  36. endcase.
  37. "reverse string
  38. call function 'STRING_REVERSE'
  39. exporting
  40. string = l_strin
  41. lang = sy-langu
  42. importing
  43. rstring = l_reverse.
  44.  
  45. select single dcpfm into l_dcpfm from usr01 where bname = sy-uname.
  46.  
  47. case l_dcpfm.
  48. when ''.
  49. case l_lenth2.
  50. when 1 or 2 or 3.
  51. concatenate l_str1 l_str2 into l_mask separated by ','.
  52. when 4 or 5 or 6.
  53. concatenate l_str2 l_str2 into l_mask separated by '.'.
  54. concatenate l_str1 l_mask into l_mask separated by ','.
  55. when 7 or 8 or 9.
  56. concatenate l_str2 l_str2 l_str2 into l_mask separated by '.'.
  57. concatenate l_str1 l_mask into l_mask separated by ','.
  58. when 10 or 11 or 12.
  59. concatenate l_str2 l_str2 l_str2 l_str2 into l_mask separated by '.'.
  60. concatenate l_str1 l_mask into l_mask separated by ','.
  61. when others.
  62. endcase.
  63. when 'X'.
  64. case l_lenth2.
  65. when 1 or 2 or 3.
  66. concatenate l_str1 l_str2 into l_mask separated by '.'.
  67. when 4 or 5 or 6.
  68. concatenate l_str2 l_str2 into l_mask separated by ','.
  69. concatenate l_str1 l_mask into l_mask separated by '.'.
  70. when 7 or 8 or 9.
  71. concatenate l_str2 l_str2 l_str2 into l_mask separated by ','.
  72. concatenate l_str1 l_mask into l_mask separated by '.'.
  73. when 10 or 11 or 12.
  74. concatenate l_str2 l_str2 l_str2 l_str2 into l_mask separated by ','.
  75. concatenate l_str1 l_mask into l_mask separated by '.'.
  76. when others.
  77. endcase.
  78. when 'Y'.
  79. case l_lenth2.
  80. when 1 or 2 or 3.
  81. concatenate l_str1 l_str2 into l_mask separated by ','.
  82. when 4 or 5 or 6.
  83. concatenate l_str2 l_str2 into l_mask separated by space.
  84. concatenate l_str1 l_mask into l_mask separated by ','.
  85. when 7 or 8 or 9.
  86. concatenate l_str2 l_str2 l_str2 into l_mask separated by space.
  87. concatenate l_str1 l_mask into l_mask separated by ','.
  88. when 10 or 11 or 12.
  89. concatenate l_str2 l_str2 l_str2 l_str2 into l_mask separated by space.
  90. concatenate l_str1 l_mask into l_mask separated by ','.
  91. when others.
  92. endcase.
  93. endcase.
  94.  
  95. write l_reverse using edit mask l_mask to l_strout.
  96.  
  97. if sy-subrc = 0.
  98. "reverse string
  99. call function 'STRING_REVERSE'
  100. exporting
  101. string = l_strout
  102. lang = sy-langu
  103. importing
  104. rstring = e_strout.
  105. endif.
  106. endfunction.
  1. DATA:l_wrbtr LIKE bdcdata-fval. "BDC Amount
  2.  
  3. l_wrbtr = <lfs_post>-kwert.
  4.  
  5. CONDENSE l_wrbtr NO-GAPS.
  6.  
  7. CALL FUNCTION 'ZGM_CONVER_CUUR'
  8. EXPORTING
  9. i_strin = l_wrbtr
  10. i_decimals = 2"两位小数,也可三位 四位
  11. IMPORTING
  12. e_strout = l_wrbtr.

SAP BDC 调用中 金额格式转换的更多相关文章

  1. JAVA中时间格式转换

    1.将任意日期格式的字符串转换为指定格式的字符串 //默认格式 String s1 = "20190110133236"; //给定格式 String s2 = "201 ...

  2. layui的table中日期格式转换

    我使用的layui的2.4.5版本,在util中已经带了格式转换的函数.这里主要记录如何使用. 未使用前在table中显示如下: 前端代码如下: {field:'createDate', title: ...

  3. SpringBoot+MyBatis Plus对Map中Date格式转换的处理

    在 SpringBoot 项目中, 如何统一 JSON 格式化中的日期格式 问题 现在的关系型数据库例如PostgreSQL/MySQL, 都已经对 JSON 类型提供相当丰富的功能, 项目中对于不需 ...

  4. Sql与C#中日期格式转换总结

    SQL中的转换方法: 一.将string转换为datetime,主要是使用Convert方法, 方法,Convert(datetime [ ( length ) ] , expression, [st ...

  5. Mac中的格式转换如何用读写工具Tuxera NTFS完成

    Tuxera NTFS for Mac是一款专门为Mac用户提供的NTFS驱动软件,它不仅可以进行磁盘文件的访问.编辑.传输和存储,还可以对硬盘进行维修检查以及修复. 今天小编就给大家简单介绍一下Tu ...

  6. Sql Server中Float格式转换字符串varchar方法(转)

    1.[Sql Server](70)  SELECT CONVERT(varchar(100), CAST(@testFloat AS decimal(38,2)))SELECT STR(@testF ...

  7. js读取excel中日期格式转换问题

    在使用js-xlsx插件来读取excel时,会将2018/10/16这种数据自动装换成48264.12584511. 所以需要自己手动再转换回来 // excel读取2018/01/01这种时间格式是 ...

  8. JAVA中日期格式转换各个字母代表含义

    G  Era 标志符  Text  AD  y  年  Year  1996; 96  M  年中的月份  Month  July; Jul; 07  w  年中的周数  Number  27  W  ...

  9. linq中日期格式转换或者比较,程序报错说不支持方法的解决办法

    public void TestMethod1(){using (var _context = new hotelEntities()){var rq = DateTime.Now.Date;var ...

随机推荐

  1. 【课程汇总】OpenHarmony 成长计划知识赋能第三期系列课程(附链接)

    OpenHarmony 开源开发者成长计划第三期知识赋能课程硬核程度再次升级,带领开发者上手 OpenHarmony 的标准系统应用开发,学习标准设备应用开发,使用 eTS UI 开发分布式应用样例, ...

  2. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...

  3. AcWing周赛44

    周赛44 4317. 不同正整数的个数 link:https://www.acwing.com/problem/content/4320/ 我直接set #include <iostream&g ...

  4. Blazor Bootstrap 组件库地理定位/移动距离追踪组件介绍

    地理定位/移动距离追踪组件 通过浏览器 API 获取定位信息 DEMO https://www.blazor.zone/geolocations 小提示 注意: 出于安全考虑,当网页请求获取用户位置信 ...

  5. js 轮播图 (原生)

    注 : 此处内容较多, 只显示代码, 具体讲解看注释.  具体参考 "黑马 pink老师"   https://www.bilibili.com/video/BV1Sy4y1C7h ...

  6. 0基础学习docker

    进入docker容器命令 docker exec -it 容器id bash 获取镜像 # 1.获取镜像,镜像托管仓库 docker search centos # 查询centos镜像 docker ...

  7. 4.25JMster环境搭建、webxml及测试平台练习

    1.Java环境搭建 右击电脑属性--高级设置--环境变量--系统变量--新建(输入JAVA_HOME.C:\Program Files\Java\jdk1.8.0_91---CLASSPATH..; ...

  8. CentOS开机流程详解

    一个执着于技术的公众号 开机流程 BIOS: (Basic Input Output System)基本输入输出系统,它是一组固化到计算机内主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输 ...

  9. 前端面试 -HTTP系列

    http和https 的区别? 端口 经济 安全性 响应速度 http 80端口 不需要 明文传输,安全性差 页面响应速度快,使用tcp的3次握手 https 443端口 费钱SSL需要ca 证书 S ...

  10. 小程序扫码、上传图片、css时间轴

    de <!-- 导航 --> <view class="navSec flexBox"> <text class="navItem {{ s ...