信贷余额表取数逻辑

来源:互联网 发布:怪诞小镇知乎 编辑:程序博客网 时间:2024/04/28 13:11
FORM GET_DATA .
  DATA:LT_KNA1    LIKE TABLE OF KNA1 WITH HEADER LINE,
       LT_S066    LIKE TABLE OF S066 WITH HEADER LINE,
       LT_S067    LIKE TABLE OF S067 WITH HEADER LINE,
       LT_T001    LIKE TABLE OF T001 WITH HEADER LINE,
       LT_ZFT_HKH LIKE TABLE OF ZFT_HKH WITH HEADER LINE.
  SELECT KUNNR KLIMK KNKLI
    FROM KNKK
    INTO CORRESPONDING FIELDS OF TABLE GT_ITAB
  WHERE KKBER P_KKBER
    AND KUNNR IN S_KUNNR.
  IF GT_ITAB[] IS NOT INITIAL.
    SELECT FROM KNA1 INTO TABLE LT_KNA1
      FOR ALL ENTRIES IN GT_ITAB
      WHERE KUNNR  GT_ITAB-KUNNR.
    SELECT FROM S066 INTO TABLE LT_S066
      FOR ALL ENTRIES IN GT_ITAB
      WHERE KKBER P_KKBER
        AND KNKLI GT_ITAB-KNKLI.
    SELECT FROM S067 INTO TABLE LT_S067
      FOR ALL ENTRIES IN GT_ITAB
      WHERE KKBER P_KKBER
        AND KNKLI GT_ITAB-KNKLI.
    SELECT FROM T001 INTO TABLE LT_T001
      WHERE KKBER P_KKBER.
    IF LT_T001[] IS  NOT INITIAL.
      SELECT FROM ZFT_HKH INTO TABLE LT_ZFT_HKH
        FOR ALL ENTRIES IN GT_ITAB
        WHERE KUNNR GT_ITAB-KUNNR
          AND LOEDK ''
          AND ZKSTO ''
          AND ZFBSK 'B'.
    ENDIF.
  ENDIF.

  LOOP AT GT_ITAB ASSIGNING <ITAB>.
    READ TABLE LT_KNA1 WITH KEY KUNNR <ITAB>-KUNNR.
    IF SY-SUBRC 0.
      <ITAB>-NAME1 LT_KNA1-NAME1.
    ENDIF.
    LOOP AT LT_S066 WHERE KNKLI <ITAB>-KNKLI.
      ADD LT_S066-OEIKW TO <ITAB>-OEIKW.
    ENDLOOP.
    LOOP AT LT_S067 WHERE KNKLI <ITAB>-KNKLI.
      ADD LT_S067-OLIKW TO <ITAB>-OLIKW.
      ADD LT_S067-OFAKW TO <ITAB>-OFAKW.
    ENDLOOP.
    LOOP AT LT_T001 WHERE KKBER P_KKBER.
      LOOP AT LT_ZFT_HKH WHERE BUKRS LT_T001-BUKRS
                            AND KUNNR <ITAB>-KUNNR.
        ADD LT_ZFT_HKH-HKBTR TO <ITAB>-HKBTR.
      ENDLOOP.
    ENDLOOP.
    <ITAB>-KYED <ITAB>-KLIMK + <ITAB>-HKBTR <ITAB>-OEIKW <ITAB>-OLIKW <ITAB>-OFAKW.
  ENDLOOP.
ENDFORM.                    " GET_DATA
1 0
原创粉丝点击