1.实现

  • 参照中文金额小写转大写:SAP 中文小写金额转大写金额 amount in word
  • 由于越南文千进制,调整逻辑比较麻烦;所以采用替换对应字符的方式来实现
  • 越南文需要首字符大写;并且单词数字间有空格,这是和国内不一样的地方
    • 主程序:

      FUNCTION z_fi_conv_amount_vi.
      *"----------------------------------------------------------------------
      *"*"本地接口:
      *"  IMPORTING
      *"     REFERENCE(I_INPUT) TYPE  WERTV12
      *"  EXPORTING
      *"     REFERENCE(E_OUTPUT) TYPE  STRING
      *"----------------------------------------------------------------------DATA: i_value   TYPE char100,        "入参e_value   TYPE char255,        "出参v_intege  TYPE c LENGTH 23,   "整数部分   最大23位v_decimal TYPE c LENGTH 2.    "小数部分   默认2位DATA: text_tab    TYPE TABLE OF char_4,wa_text_tab TYPE  char_4,length      TYPE i.DATA: v_lenth TYPE i,                           "整数部分长度v_cache TYPE c LENGTH 1.                  "缓存"输入i_value = i_input.SHIFT i_value LEFT DELETING LEADING '0'.          "删除前导0CONDENSE i_value NO-GAPS.                         "删除空格"拆分金额的整数小数SPLIT i_value AT '.' INTO v_intege v_decimal.PERFORM frm_string_reverse CHANGING v_intege.     "翻转intege stingCALL FUNCTION 'SCMS_STRING_TO_FTEXT'             "四个一拆分EXPORTINGtext      = |{ v_intege }|IMPORTINGlength    = lengthTABLESftext_tab = text_tab.LOOP AT text_tab INTO wa_text_tab.CASE sy-tabix.WHEN 1.CONCATENATE e_value '元'  INTO e_value.WHEN 2.IF wa_text_tab <> '0000'.CONCATENATE '万' e_value INTO e_value.ENDIF.WHEN 3.IF wa_text_tab <> '0000'.CONCATENATE '亿' e_value INTO e_value.ENDIF.WHEN 4.IF wa_text_tab <> '0000'.CONCATENATE '兆' e_value INTO e_value.ENDIF.WHEN 5.IF wa_text_tab <> '0000'.CONCATENATE '万兆' e_value INTO e_value.ENDIF.WHEN 6.IF wa_text_tab <> '0000'.CONCATENATE '京' e_value INTO e_value.          "兆后面就是京ENDIF.ENDCASE.CLEAR: v_lenth.DO strlen( wa_text_tab ) TIMES.v_cache = wa_text_tab+v_lenth(1).IF v_cache <> 0.CASE v_lenth.WHEN 0.CONCATENATE v_cache e_value INTO e_value.WHEN 1.CONCATENATE v_cache '拾' e_value INTO e_value.WHEN 2.CONCATENATE v_cache '佰' e_value INTO e_value.WHEN 3.CONCATENATE v_cache '仟' e_value INTO e_value.ENDCASE.ELSE.CONCATENATE v_cache e_value INTO e_value.ENDIF.v_lenth = v_lenth + 1.ENDDO.ENDLOOP.IF e_value <> '0元'.REPLACE ALL OCCURRENCES OF REGEX '0+京' IN e_value WITH '京0'.REPLACE ALL OCCURRENCES OF REGEX '0+万兆' IN e_value WITH '万兆0'.REPLACE ALL OCCURRENCES OF REGEX '0+兆' IN e_value WITH '兆0'.REPLACE ALL OCCURRENCES OF REGEX '0+亿' IN e_value WITH '亿0'.REPLACE ALL OCCURRENCES OF REGEX '0+万' IN e_value WITH '万0'.REPLACE ALL OCCURRENCES OF REGEX '0+元' IN e_value WITH '元'.               "排除掉  100000.01 显示 壹拾万零元零壹分 的情况ENDIF."越南文不处理小数CONCATENATE e_value ' chẵn' INTO e_value."  替换e_value中的数字  正则表达式REPLACE ALL OCCURRENCES OF REGEX '0+'   IN e_value WITH ' lẻ '.        "多个零时,只输出一个零REPLACE ALL OCCURRENCES OF REGEX '1{1}' IN e_value WITH ' một '.REPLACE ALL OCCURRENCES OF REGEX '2{1}' IN e_value WITH ' hai '.REPLACE ALL OCCURRENCES OF REGEX '3{1}' IN e_value WITH ' ba '.REPLACE ALL OCCURRENCES OF REGEX '4{1}' IN e_value WITH ' bốn '.REPLACE ALL OCCURRENCES OF REGEX '5{1}' IN e_value WITH ' năm '.REPLACE ALL OCCURRENCES OF REGEX '6{1}' IN e_value WITH ' sáu '.REPLACE ALL OCCURRENCES OF REGEX '7{1}' IN e_value WITH ' bảy '.REPLACE ALL OCCURRENCES OF REGEX '8{1}' IN e_value WITH ' tám '.REPLACE ALL OCCURRENCES OF REGEX '9{1}' IN e_value WITH ' chín '.REPLACE ALL OCCURRENCES OF '兆' IN e_value WITH ' nghìn tỷ '.REPLACE ALL OCCURRENCES OF '仟亿' IN e_value WITH ' trăm tỷ '.REPLACE ALL OCCURRENCES OF '佰亿' IN e_value WITH ' mười tỷ '.REPLACE ALL OCCURRENCES OF '拾亿' IN e_value WITH ' tỷ '.REPLACE ALL OCCURRENCES OF '亿' IN e_value WITH ' trăm triệu '.REPLACE ALL OCCURRENCES OF '仟万' IN e_value WITH ' mười triệu '.REPLACE ALL OCCURRENCES OF '佰万' IN e_value WITH ' triệu '.REPLACE ALL OCCURRENCES OF '拾万' IN e_value WITH ' trăm nghìn '.REPLACE ALL OCCURRENCES OF '万' IN e_value WITH ' mười nghìn '.REPLACE ALL OCCURRENCES OF '元' IN e_value WITH ' đồng '.REPLACE ALL OCCURRENCES OF '拾' IN e_value WITH ' mười '.REPLACE ALL OCCURRENCES OF '佰' IN e_value WITH ' trăm '.REPLACE ALL OCCURRENCES OF '仟' IN e_value WITH ' nghìn '.CONDENSE e_value." 首字母大写  理论上只有0-9才会出现在首字母CASE e_value+0(1).WHEN 'l'.e_value+0(1) = 'L'.WHEN 'm'.e_value+0(1) = 'M'.WHEN 'h'.e_value+0(1) = 'H'.WHEN 'b'.e_value+0(1) = 'B'.WHEN 'n'.e_value+0(1) = 'N'.WHEN 's'.e_value+0(1) = 'S'.WHEN 't'.e_value+0(1) = 'T'.WHEN 'c'.e_value+0(1) = 'C'.ENDCASE."输出e_output = e_value.
      ENDFUNCTION.
      
    • 子程序FORM:
      FORM frm_string_reverse  CHANGING v_intege.DATA:lv_i TYPE i.DATA:lv_j TYPE i.DATA: rstring TYPE string.lv_i = strlen( v_intege ).DO lv_i TIMES.CONCATENATE v_intege+lv_j(1) rstring INTO rstring.lv_j = lv_j + 1.ENDDO.v_intege = rstring.
      ENDFORM.
      

2.效果


  • 越南文看不懂,就翻译吧!!!

SAP 越南小写金额转大写金额 amount in word相关推荐

  1. 人民币 小写金额转换为大写金额

    人民币 小写金额转换为大写金额 标签(空格分隔): 人民币 小写金额转换为大写金额 jsp: div class="form-group"> <label class= ...

  2. 人民币小写金额转大写金额

    #region 人民币小写金额转大写金额/// <summary>/// 小写金额转大写金额/// </summary>/// <param name="Mon ...

  3. 小写金额转换为大写金额JS方法

    /**  *function: 小写金额转换为大写金额  *return: 转换后的大写金额,类型String */ function money2Cn(str){  var temp = parse ...

  4. #小写金额转大写金额

    小写金额转大写金额 闲话不多说,直接上代码: function num_to_rmb($num){ $c1 = "零壹贰叁肆伍陆柒捌玖";$c2 = "分角元拾佰仟万拾佰 ...

  5. 将小写金额转换为大写金额

    /* 运行环境:MS-SQL 2000 将小写金额转换为大写金额 整数部分最大值:9位数 小数部分最大值:2位 必须格式:整数.小数 状态:完成 Update date:2007-10-07 */ / ...

  6. C#实现小写金额转大写金额

    最近项目上用到小写转大写金额,公司同事还准备写一段代码来实现,后来发现架构上有现成的. 其实在银行.进销存.CRM等系统中经常可能用到 这个跟大家分享一下: 小写金额转大写 /// <summa ...

  7. c语言如何实现人民币转换编程,C语言成序设计实现人民币小写金额与大写金额的转换.docx...

    main() {double r,y; int x, m,n,j,i,k,flag=0; int str1[10]={"零","壹","贰" ...

  8. 无限位小写金额转换大写金额(修订版)

    说明: 1.本程序用JavaScript语言编写.转换方法严格遵照中国人民银行规定的银行支票中关于金额数字中文大写填写规范的相关规定(见下面附文),规定中两可之处按简便方法处理. 2.输入小写金额原则 ...

  9. java小写金额转大写金额

    1.引入hutool依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all& ...

  10. 【PHP】小写金额转大写金额

    /*** 将数值金额转换为中文大写金额* @param $amount float 金额(支持到分)* @param $type int 补整类型,0:到角补整;1:到元补整* @return mix ...

最新文章

  1. matlab学习——1.基本操作
  2. 在条形图中对X轴进行排序
  3. ALV 刷新实现(自动)
  4. 小程序循环里做字符串拼接_昨天还在for循环里写加号拼接字符串的那个同事,今天已经不在了...
  5. Leetcode--713. 乘积小于k的子数组
  6. python 3_Python3 列表
  7. (52)FPGA条件选择(casex)
  8. Skype 1.4 for Linux 掉掉更新
  9. python 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址_[LeetCode] 468. 验证IP地址
  10. 462.最少移动次数使数组元素相等II  (力扣leetcode) 博主可答疑该问题
  11. tomcat乱码问题解决集合
  12. BeanUtils与PropertyUtils区别
  13. json文件编辑器android版,json editor手机版下载
  14. 前端vs图片:2 图片深度、图片分类等基本信息
  15. 计算H时M分S秒以后是_最全的风机计算公式,学习了!
  16. 58同城产品2面面经
  17. 平面设计中的网格系统pdf_【200421】平面设计必看书籍超越平凡的设计平面设计中的网格系统等|电子书资源免费分享...
  18. php artisan 计划任务,Laravel artisan命令及任务调度
  19. 检测android app是否在白名单内
  20. 二、肺癌检测-LUNA数据集下载和介绍

热门文章

  1. 计算机系统C盘会还原,怎么还原电脑C盘的初始状态
  2. Flink 滑动窗口优化
  3. 佳能Canon PIXMA MP630 一体机驱动
  4. python登录微信pc版_微信PC版内测更新,又增加2个实用功能
  5. 应用程序“xxx“不能打开,怎么解决?
  6. Hello Qt——QtDBus快速入门
  7. SpringMVC工作原理图
  8. matlab计算abc三相短路电流_供配电系统设计需要用到的计算公式(结合手册简要总结)...
  9. 高通蓝牙耳机开发方法-周康
  10. 默纳克万能协议服务器图片,默纳克万能MDKE6服务器使用说明.docx