📄 zfir0004.html
字号:
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 <> 'ZQT'
AND AUART_P <> 'ZXN'
AND AUART_P <> 'ZYC'
AND AUART_P <> 'ZMN'
AND AUDAT <= 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 <> '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 <> 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 < 0.
ITAC-GSYS_DMBTR = 0.
ENDIF.
IF ITAC-YS_DMBTR < 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">* --> p1 text</font>
<font color ="#0000FF">* <-- 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 + -