• 数值中文分离计算


      业务需要,成绩一栏里,有数值有文字。文字固定。

      导入SAP 时,我就遇到了困难,要是关键指标。这个文字就录入错误。要是字符型的。那么怎么计算了。信息对象都不好建

      按月导入,所以服务店与时间共同构成KEY。这样才不会在DSO覆盖。

      

      解决方法:字符串导入,上传到DSO时分离出数值在新的信息对象ZCJ,原来的就在ZCJ1。这样两列。

      这样用原来的列做过滤,剩下的用ZCJ来做计算就好。问题解决。

      

      过程:

      在数据源时其实可以不建信息对象。设置一个char类型就好 。信息对象模板其实可以为空。不一定非要填写。

      

    建好DSO,创建转换:

      

      我一开始想法错误了。我把ZCJ弄成纯数值   ,顺便以为ZCJ1 以为也要弄成纯文字型的。其实不必,它原来就是不考核,带一些数值没关系。它只是记录,不参与计算。顺便过滤。都不用操作。

      开始以为要彻底把一件东西分开。其实不用,只要从中原来里分离出数值就好。因为是多出来一列。同一条数据。明白了吧。

      那这样就直接在ZCJ里写例程就好

      这样用一个字符串转数值函数就可以把数值带出来,字符串变成0。形成新列

    DATA: OUT TYPE _ty_s_TG_1-/BIC/ZCJ.    *定义一个接受函数的值   (这个重要)
    CALL FUNCTION 'ZUNITS_STRING_CONVERT'  *字符转换的函数
      EXPORTING
        UNITS_STRING       = SOURCE_FIELDS-ZCJ1      *输入的值
        DCPFM              = 'X'     *类型
    *   MLLN               = 'M'
    *   TSND               = 'T'
     IMPORTING
       UNITS              = OUT     * 输出
     EXCEPTIONS
       INVALID_TYPE       = 1    
       OTHERS             = 2     *判断类型
    
              .
    IF SY-SUBRC = 0.     *等于0 ,表示执行成功
      RESULT =  OUT.     *输出数值
    * Implement suitable error handling here
    ELSEIF SY-SUBRC = 1.   * 失败类型,表示文字不考核。零
      RESULT = 0.
    ELSEIF SY-SUBRC = 2.   * 其他的原因,返回一下。
     raise exception type CX_RSROUT_ABORT.
    ENDIF.

     完成

  • 相关阅读:
    条件类的设计
    条件对象的设计
    又是一个星期天,明天又要开始一周的工作了,想想上周的工作情况,不怎么理想。
    自动设置的类,版本2,在设计上比前一个版本有进步。
    最近写了一个自动保存设置的类。
    关于异常信息"未找到成员"
    表达式类的设计
    IExtenderProvider 接口的应用.实现自定义组件LilyValidateProvider
    IIS404的问题
    程序开发[对象的旅行]
  • 原文地址:https://www.cnblogs.com/sakura3/p/8473917.html
Copyright © 2020-2023  润新知