逻辑判断,然后对数据进行拆分

**2016年9月1日开始,营业一部(CH、E9)拆分成营一南(CH、EF)、营一北(CH、EG),各分公司可直接归属营一南或营一北,
    "但C79陕西旺旺商贸需要按营业所拆分。
*1、  16年4月之后的数据:当0COMP_CODE公司代码=C79,且0DISTR_CHAN分销渠道=CH,且0DIVISION=E9时,判断
*营业所0SALES_OFF的首字符,
*首字符=3时,将0DIVISION改为EF;首字符=5时,将将0DIVISION改为EG。

*2、2015年到2016年3月的数据,当0COMP_CODE公司代码=C79,且ZFIIC015__ZFIIC016
*=CH,且ZFIIC015__ZFIIC017=E9时,判断营业所0SALES_OFF的首字符,
*首字符=3时,将0DIVISION改为EF;首字符=5时,将将0DIVISION改为EG。

    data: l_ZFIIC016 type /BIC/OIZFIIC016,
          l_ZFIIC017 type /BIC/OIZFIIC017.

    LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>.
      IF <result_fields>-comp_code  = 'C79' .
        IF <result_fields>-FISCPER BETWEEN '2015001' and '2016003'.
          clear:l_ZFIIC016,l_ZFIIC017.
          select single /BIC/ZFIIC016 /BIC/ZFIIC017
            into (l_ZFIIC016,l_ZFIIC017)
            from /BIC/PZFIIC015
            where COMP_CODE = <result_fields>-COMP_CODE
            and   DISTR_CHAN = <result_fields>-DISTR_CHAN
            and   DIVISION = <result_fields>-DIVISION
            and   /BIC/ZFIIC015 = <result_fields>-/BIC/ZFIIC015
            and   OBJVERS = 'A' .
          IF sy-subrc = 0 .
            IF    l_ZFIIC016  ='CH'
               AND l_ZFIIC017   = 'E9' .
              IF   <result_fields>-sales_off+0(1) ='3' .
                <result_fields>-division = 'EF'.
              ELSEIF <result_fields>-sales_off+0(1) = '5'.
                <result_fields>-division = 'EG'.
              ENDIF.
            ENDIF.
          ENDIF.
        elseif <result_fields>-FISCPER > '2016003'.
          IF    <result_fields>-distr_chan  ='CH'
             AND <result_fields>-division    = 'E9' .
            IF   <result_fields>-sales_off+0(1) ='3' .
              <result_fields>-division = 'EF'.
            ELSEIF <result_fields>-sales_off+0(1) = '5'.
              <result_fields>-division = 'EG'.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDLOOP .

 

posted @ 2018-01-19 10:41  王族子坤  阅读(386)  评论(0)    收藏  举报