⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zfir0004.html

📁 SAP财务:合同收款发票完成情况 (ABAP) 大家请参考指点
💻 HTML
📖 第 1 页 / 共 2 页
字号:
              IF ITAB-BUDAT+0(6) = BUDAT+0(6).
                 ITAB-DYSK_DMBTR = ITAB-DYSK_DMBTR + ITAB-DMBTR.
              ENDIF.
           ENDIF.
        ELSEIF ITAB-SHKZG = 'S' AND BUDAT < ITAB-AUGDT.
               IF ITAB-HKONT = '0022030201'.
                  ITAB-GSUS_DMBTR = ITAB-GSUS_DMBTR - ITAB-DMBTR.
                  ITAB-GSSK_DMBTR = ITAB-GSSK_DMBTR - ITAB-DMBTR.
                  IF ITAB-BUDAT+0(6) = BUDAT+0(6).
                     ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR - ITAB-DMBTR.
                  ENDIF.
               ELSE.
                  ITAB-US_DMBTR = ITAB-US_DMBTR - ITAB-DMBTR.
                  ITAB-SK_DMBTR = ITAB-SK_DMBTR - ITAB-DMBTR.
                  IF ITAB-BUDAT+0(6) = BUDAT+0(6).
                     ITAB-DYSK_DMBTR = ITAB-DYSK_DMBTR - ITAB-DMBTR.
                  ENDIF.
              ENDIF.
        ENDIF.
      ENDIF.
    ENDIF.
    MODIFY ITAB.
    CLEAR ITAB.
  ENDLOOP.
      LOOP AT ITAB.
        SELECT SINGLE VBTYP MWSBK NETWR INTO (WA_VBTYP, WA_MWSBK, WA_NETWR) FROM VBRK
                                                         WHERE VBELN  = ITAB-BELNR.
        IF SY-SUBRC EQ 0.
          IF WA_VBTYP = 'N' OR WA_VBTYP = 'O' OR WA_VBTYP = '6'.
            WA_NETWR = 0 - WA_NETWR.
            WA_MWSBK = 0 - WA_MWSBK.
            IF WA_VBTYP = '6'.
              ITAB-GS_DMBTR =  WA_NETWR + WA_MWSBK.
            ELSE.
              ITAB-FP_DMBTR = WA_NETWR + WA_MWSBK.
            ENDIF.
          ELSE.
            IF WA_VBTYP = '5'.
              ITAB-GS_DMBTR = WA_NETWR + WA_MWSBK.
            ELSE.
              ITAB-FP_DMBTR = WA_NETWR + WA_MWSBK.
            ENDIF.
          ENDIF.
        ENDIF.
        MODIFY ITAB.
        CLEAR ITAB.
        CLEAR: WA_VBTYP, WA_MWSBK, WA_NETWR.
      ENDLOOP.
      LOOP AT ITAB.
        MOVE-CORRESPONDING ITAB TO ITAC.
        COLLECT ITAC.
        CLEAR ITAC.
      ENDLOOP.
      READ TABLE ITAC INDEX 1.
      IF SY-SUBRC EQ 0.
        SELECT  BSTKD AUART POSNR VBELN
                            INTO CORRESPONDING FIELDS OF TABLE ITAD FROM M_VMVAA
                            FOR ALL ENTRIES IN ITAC
                            WHERE BSTKD = ITAC-BSTKD.
      ENDIF.
      SORT ITAD BY VBELN.
      DELETE ADJACENT DUPLICATES FROM ITAD COMPARING VBELN.
      LOOP AT ITAD.
        SELECT   KZWI1 INTO WA_KZWI1 FROM VBAP
                             WHERE VBELN = ITAD-VBELN
<font color ="#0000FF">*                           AND POSNR = ITAD-POSNR</font>
                               AND ABGRU = ''.
          IF SY-SUBRC EQ 0.
            LOOP AT ITAC WHERE BSTKD = ITAD-BSTKD.
              IF ITAD-AUART = 'ZRE'.
                WA_KZWI1 = 0 - WA_KZWI1.
                ITAC-DD_DMBTR = ITAC-DD_DMBTR +  WA_KZWI1.
              ELSE.
                ITAC-DD_DMBTR = ITAC-DD_DMBTR + WA_KZWI1.
              ENDIF.
              MODIFY ITAC.
            ENDLOOP.
          ENDIF.
        ENDSELECT.
        MOVE-CORRESPONDING ITAD TO ITAE.
        APPEND ITAE.
        CLEAR ITAE.
      ENDLOOP.
<font color ="#0000FF">*  ITAE[] = ITAD[].</font>
      REFRESH ITAD.
      CLEAR ITAD.
      SELECT VKORG INTO IT_TVKO-VKORG_P FROM TVKO
                   WHERE BUKRS EQ BUKRS.
        APPEND IT_TVKO.
      ENDSELECT.
      SELECT  VKORG_P BSTNK_P  AUART_P AUDAT VBELN  INTO (ITAD-VKORG, ITAD-BSTKD, ITAD-AUART , ITAD-AUDAT, ITAD-VBELN)
                                  FROM M_VMVAE
                                  WHERE KUNDE IN KUNNR
                                    AND BSTNK_P IN ZUONR
                                    AND AUART_P &lt;&gt; 'ZQT'
                                    AND AUART_P &lt;&gt; 'ZXN'
                                    AND AUART_P &lt;&gt; 'ZYC'
                                    AND AUART_P &lt;&gt; 'ZMN'
                                    AND AUDAT &lt;= BUDAT.
        IF ITAD-AUDAT+0(4) IN GJAHR.
          APPEND ITAD.
        ENDIF.
      ENDSELECT.
      WA_JS = 0.
      LOOP AT ITAD.
        WA_JS =  SY-TABIX.
        READ TABLE ITAE WITH KEY VBELN = ITAD-VBELN.
        IF SY-SUBRC EQ 0.
          DELETE ITAD INDEX WA_JS.
        ENDIF.
        READ TABLE IT_TVKO WITH KEY VKORG_P = ITAD-VKORG.
        IF SY-SUBRC NE 0.
          DELETE ITAD INDEX WA_JS.
        ENDIF.
      ENDLOOP.
<font color ="#0000FF">*  LOOP AT ITAD.</font>
<font color ="#0000FF">*    SELECT SINGLE FKSAK INTO WA_FKSAK FROM VBUK WHERE VBELN = ITAD-VBELN .</font>
<font color ="#0000FF">*       IF WA_FKSAK &lt;&gt; 'A'.</font>
<font color ="#0000FF">*          DELETE ITAD INDEX SY-TABIX.</font>
<font color ="#0000FF">*       ENDIF.</font>
<font color ="#0000FF">*  ENDLOOP.</font>
      LOOP AT ITAD.
        CLEAR: WA_NETWR, WA_KZWI1.
        SELECT KZWI1 INTO WA_KZWI1 FROM VBAP
                                   WHERE VBELN = ITAD-VBELN.
          IF ITAD-AUART = 'ZRE'.
            WA_KZWI1 = 0 - WA_KZWI1.
          ENDIF.
          WA_NETWR = WA_NETWR + WA_KZWI1.
        ENDSELECT.
        LOOP AT ITAC WHERE BSTKD = ITAD-BSTKD.
          ITAC-DD_DMBTR = ITAC-DD_DMBTR + WA_NETWR.
          MODIFY ITAC.
        ENDLOOP.
        IF SY-SUBRC NE 0.
          MOVE-CORRESPONDING ITAD TO ITAC.
          ITAC-DD_DMBTR = WA_NETWR.
          COLLECT ITAC.
        ENDIF.
        CLEAR ITAC.
      ENDLOOP.
      LOOP AT ITAC.
        IF ITAC-DD_DMBTR &lt;&gt; 0.
          ITAC-HKL = ( ITAC-SK_DMBTR / ITAC-DD_DMBTR ) * 100.
          MODIFY ITAC.
        ENDIF.
        SELECT SINGLE ZTERM INTO ITAC-ZTERM FROM VBKD WHERE BSTKD = ITAC-BSTKD.
        SELECT SINGLE VTEXT INTO ITAC-VTEXT FROM TVZBT WHERE ZTERM = ITAC-ZTERM AND SPRAS = '1'.
        IF ITAC-GSYS_DMBTR &lt; 0.
           ITAC-GSYS_DMBTR = 0.
        ENDIF.
        IF ITAC-YS_DMBTR &lt; 0.
           ITAC-GSYS_DMBTR  = 0.
        ENDIF.
        MODIFY ITAC.
      ENDLOOP.
      SORT ITAC BY BSTKD.
      REFRESH ITAD.
      CLEAR ITAD.
      DELETE ITAC WHERE DD_DMBTR = 0 AND  FP_DMBTR = 0 AND GS_DMBTR = 0 AND SK_DMBTR = 0
                    AND DYSK_DMBTR = 0 AND YS_DMBTR = 0 AND  US_DMBTR = 0.
    ENDFORM.                    " GET_DATA
<font color ="#0000FF">*&---------------------------------------------------------------------*</font>
<font color ="#0000FF">*&      Form  DISPLAY</font>
<font color ="#0000FF">*&---------------------------------------------------------------------*</font>
<font color ="#0000FF">*       text</font>
<font color ="#0000FF">*----------------------------------------------------------------------*</font>
<font color ="#0000FF">*  --&gt;  p1        text</font>
<font color ="#0000FF">*  &lt;--  p2        text</font>
<font color ="#0000FF">*----------------------------------------------------------------------*</font>
FORM DISPLAY .
  DATA: POS TYPE I VALUE 1.
  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'BSTKD'.
  WA_ALLFIELDS-SELTEXT_L = '合同号'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'DD_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '合同金额'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'SK_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '收款'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'DYSK_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '当月收款'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.
  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'GSSK_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '公司间收款'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'GSDYSK_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '公司间当月收款'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'FP_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '客户发票金额'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'GS_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '公司间发票金额'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'YS_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '应收'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'GSYS_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '公司间应收'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.


  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'US_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '预收'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'GSUS_DMBTR'.
  WA_ALLFIELDS-SELTEXT_L = '公司间预收'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'HKL'.
  WA_ALLFIELDS-SELTEXT_L = '回款率'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'ZTERM'.
  WA_ALLFIELDS-SELTEXT_L = '付款条款'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  POS = POS + 1.
  WA_ALLFIELDS-COL_POS       =  POS.
  WA_ALLFIELDS-FIELDNAME = 'VTEXT'.
  WA_ALLFIELDS-SELTEXT_L = '描述'.
  APPEND WA_ALLFIELDS TO ALLFIELDS.
  CLEAR WA_ALLFIELDS.

  MYREPID = SY-REPID.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = MYREPID
      IS_LAYOUT          = GS_LAYOUT
      IT_FIELDCAT        = ALLFIELDS
    TABLES
      T_OUTTAB           = ITAC  "输出内表
    EXCEPTIONS
      PROGRAM_ERROR      = 1
      OTHERS             = 2.
ENDFORM.                    " DISPLAY

<font color ="#0000FF">*Text elements</font>
<font color ="#0000FF">*----------------------------------------------------------</font>
<font color ="#0000FF">* 001 选择条件</font>


<font color ="#0000FF">*Selection texts</font>
<font color ="#0000FF">*----------------------------------------------------------</font>
<font color ="#0000FF">* BUDAT         截止日期</font>
<font color ="#0000FF">* BUKRS         公司代码</font>
<font color ="#0000FF">* GJAHR         会计年度</font>
<font color ="#0000FF">* KUNNR         客户代码</font>
<font color ="#0000FF">* ZUONR         采购订单号</font>
</pre>
<hr>
<font size="2" face = "Sans Serif">Extracted by Direct Download Enterprise version 1.3.1 - E.G.Mellodew. 1998-2005 UK. Sap Release 700
</font>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -