format Excel上传中的数字(…

有时候使用Excel批导。
用户维护Excel的数字格式的时候,有时候是手动输入,有的是从别的系统导出来的。
数字格式可能有:
123,456.00
123.456,00
123456.00
123456,00
甚至奇葩点儿:123,456(没有小数点及小数位)

而咱们系统里赋值的时候,前台输入跟你su3设置有关。
但是debug的时候,你回发现,在运行时小数点就是(.)点儿。

所以为了规范格式,自己写了段代码,将输入的数字转换为 1234.00   这种格式

效果
format <wbr>Excel上传中的数字(金额)格式


FUNCTION ZLM_FORMAT_DECIMAL .
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  CHANGING
*"     REFERENCE(CV_VALUE)
*"----------------------------------------------------------------------

    DATA :LV_LEN  TYPE INT4 .
    DATA :LV_TMP  TYPE INT4 .
    DATA :LV_DEC  TYPE CHAR1 .

    LV_LEN  STRLEN ( CV_VALUE  ) .
    IF LV_LEN  7 . "1,100.00
        LV_TMP  LV_LEN  7 .
        IF CV_VALUE LV_TMP ( 1 )  CO  ',.' .
            LV_DEC  CV_VALUE LV_TMP ( 1 )  .

            REPLACE  ALL  OCCURRENCES  OF LV_DEC  IN CV_VALUE  WITH  '' .
            CONDENSE CV_VALUE  NO -GAPS .
        ENDIF .
    ENDIF .

    LV_LEN  STRLEN ( CV_VALUE  ) .
    IF LV_LEN  4 . "1,100
        LV_TMP  LV_LEN  4 .
        IF CV_VALUE LV_TMP ( 1 )  CO  ',.' .
            LV_DEC  CV_VALUE LV_TMP ( 1 )  .

            REPLACE  ALL  OCCURRENCES  OF LV_DEC  IN CV_VALUE  WITH  '' .
            CONDENSE CV_VALUE  NO -GAPS .
        ENDIF .
    ENDIF .


    LV_LEN  STRLEN ( CV_VALUE  ) .

    IF LV_LEN  3 .   "100.00
        LV_TMP  LV_LEN  3 .
        LV_DEC  CV_VALUE LV_TMP ( 1 )  .
        IF LV_DEC  CO  ',.' .
            REPLACE  ALL  OCCURRENCES  OF LV_DEC  IN CV_VALUE  WITH  '.' .
        ENDIF .
    ENDIF .
ENDFUNCTION .
format <wbr>Excel上传中的数字(金额)格式


当然,我这里是只针对只有两位小数位的,比如金额,对于三位小数位的,自己改下就行了

 可能是有标准函数或者其他方法能做这个,我懒得找了,索性自己随手写了这么一个,可能有bug,遇到了再说吧

欢迎关注订阅号:SAP学习记录 (SAPlearning 

PO <wbr><wbr>text <wbr><wbr>copy <wbr><wbr>rules <wbr><wbr>:copy <wbr><wbr>PR <wbr><wbr>item <wbr><wbr>text <wbr><wbr>to <wbr><wbr>PO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值