📄 zfir0004.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>ZFIR0004</title>
</head>
<body bgcolor="#FFFFE0">
<font size="3" face = "Arial" color="#000000"><b>Code listing for: ZFIR0004</b></font>
<br>
<font size="3" face = "Arial" color="#000000"><b>Description: 合同收款发票完成情况</b></font>
<hr>
<pre width="100">
<font color ="#0000FF">*&---------------------------------------------------------------------*</font>
<font color ="#0000FF">*& Report ZFIR0004</font>
<font color ="#0000FF">*&</font>
<font color ="#0000FF">*&---------------------------------------------------------------------*</font>
<font color ="#0000FF">*&</font>
<font color ="#0000FF">*&</font>
<font color ="#0000FF">*&---------------------------------------------------------------------*</font>
REPORT ZFIR0004.
TABLES: BSID,BSAD,VBAK,VBRK,VBRP,KONV,KNA1,LIKP,VBUK,VBFA,M_VMVAA.
DATA: BEGIN OF ITAB OCCURS 0,
BUKRS LIKE BSID-BUKRS,"公司代码
KUNNR LIKE BSID-KUNNR,"客户代码
BELNR LIKE BSID-BELNR,"会计凭证号
BUDAT LIKE BSID-BUDAT,"记帐日期
BSTKD LIKE VBKD-BSTKD,"采购合同编号
DMBTR LIKE BSID-DMBTR,"金额
FP_VBELN LIKE BSID-VBELN,"发票编号
DD_VBELN LIKE VBAK-VBELN,"销售订单号
DD_POSNR LIKE VBAP-POSNR,"销售订单行项目
DD_DMBTR LIKE BSID-DMBTR,"订单金额
FP_DMBTR LIKE BSID-DMBTR,"发票金额
GS_DMBTR LIKE BSID-DMBTR,"公司间发票金额
SK_DMBTR LIKE BSID-DMBTR,"收款
GSSK_DMBTR LIKE BSID-DMBTR,"公司收款
DYSK_DMBTR LIKE BSID-DMBTR,"当月收款
GSDYSK_DMBTR LIKE BSID-DMBTR,"公司当月收款
YS_DMBTR LIKE BSID-DMBTR,"应收
GSYS_DMBTR LIKE BSID-DMBTR,"公司间应收
US_DMBTR LIKE BSID-DMBTR,"预收
GSUS_DMBTR LIKE BSID-DMBTR,"公司间预收
HKL LIKE BSID-DMBTR,"回款率
WG_FLAG(1) TYPE C,
UMSKZ LIKE BSID-UMSKZ,"特别总帐标志
SHKZG LIKE BSID-SHKZG,"借贷标志
BLART LIKE BSID-BLART,"凭证类型
VBTYP_V LIKE VBFA-VBTYP_V,"先前的凭证类别
ZTERM LIKE BSID-ZTERM,"付款条款
AUGDT LIKE BSAD-AUGDT,"清帐日期
HKONT LIKE BSID-HKONT,"总帐科目
END OF ITAB.
DATA: BEGIN OF ITAC OCCURS 0,
<font color ="#0000FF">* BUKRS LIKE BSID-BUKRS,"公司代码</font>
<font color ="#0000FF">* KUNNR LIKE BSID-KUNNR,"客户代码</font>
BSTKD LIKE VBKD-BSTKD,"采购合同编号
DD_DMBTR LIKE BSID-DMBTR,"订单金额
FP_DMBTR LIKE BSID-DMBTR,"客户发票金额
GS_DMBTR LIKE BSID-DMBTR,"公司间发票金额
SK_DMBTR LIKE BSID-DMBTR,"收款
GSSK_DMBTR LIKE BSID-DMBTR,"公司收款
DYSK_DMBTR LIKE BSID-DMBTR,"当月收款
GSDYSK_DMBTR LIKE BSID-DMBTR,"公司当月收款
YS_DMBTR LIKE BSID-DMBTR,"应收
GSYS_DMBTR LIKE BSID-DMBTR,"公司间应收
US_DMBTR LIKE BSID-DMBTR,"预收
GSUS_DMBTR LIKE BSID-DMBTR,"公司间预收
HKL(5) TYPE P DECIMALS 2,"回款率
ZTERM LIKE VBKD-ZTERM,
VTEXT LIKE TVZBT-VTEXT,
FLAG(1) TYPE C,"交货标识
END OF ITAC .
DATA: BEGIN OF ITAD OCCURS 0,
VKORG LIKE VBAK-VKORG,
BSTKD LIKE VBKD-BSTKD,"采购合同编号
AUART LIKE VBAK-AUART,"销售订单类型
AUDAT LIKE VBAK-AUDAT,"销售订单创建日期
VBELN LIKE VBAK-VBELN,"销售订单号
POSNR LIKE VBAP-POSNR,"销售订单行项目
END OF ITAD.
DATA: BEGIN OF ITAE OCCURS 0,
BSTKD LIKE VBKD-BSTKD,"采购合同编号
AUART LIKE VBAK-AUART,"销售订单类型
AUDAT LIKE VBAK-AUDAT,"销售订单创建日期
VBELN LIKE VBAK-VBELN,"销售订单号
POSNR LIKE VBAP-POSNR,"销售订单行项目
END OF ITAE.
DATA: BEGIN OF IT_TVKO OCCURS 2, "公司代码下所有的销售组织
VKORG_P LIKE TVKO-VKORG,
END OF IT_TVKO.
DATA: WA_NETWR LIKE VBRK-NETWR.
DATA: WA_MWSBK LIKE VBRK-MWSBK.
DATA: WA_VBTYP LIKE VBRK-VBTYP.
DATA: WA_KZWI1 LIKE VBAP-KZWI1.
DATA: WA_FKSAK LIKE VBUK-FKSAK.
DATA: WA_JS(10) TYPE P DECIMALS 0.
TYPE-POOLS SLIS.
DATA GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA G_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD'.
DATA: MYREPID LIKE SY-REPID.
DATA: ALLFIELDS TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_ALLFIELDS TYPE LINE OF SLIS_T_FIELDCAT_ALV.
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: BUKRS FOR BSID-BUKRS OBLIGATORY,
GJAHR FOR BSID-GJAHR OBLIGATORY,
KUNNR FOR BSID-KUNNR,
ZUONR FOR VBAK-BSTNK.
PARAMETERS: BUDAT LIKE BSID-BUDAT DEFAULT SY-DATUM OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BLOCK1.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM DISPLAY.
END-OF-SELECTION.
<font color ="#0000FF">*&---------------------------------------------------------------------*</font>
<font color ="#0000FF">*& Form GET_DATA</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 GET_DATA .
LOOP AT ZUONR.
TRANSLATE ZUONR-LOW TO UPPER CASE.
TRANSLATE ZUONR-HIGH TO UPPER CASE.
MODIFY ZUONR.
ENDLOOP.
SELECT BUKRS KUNNR BELNR BUDAT ZUONR DMBTR XBLNR UMSKZ SHKZG BLART HKONT
INTO (ITAB-BUKRS, ITAB-KUNNR, ITAB-BELNR, ITAB-BUDAT, ITAB-BSTKD,
ITAB-DMBTR, ITAB-FP_VBELN, ITAB-UMSKZ, ITAB-SHKZG, ITAB-BLART, ITAB-HKONT)
FROM BSID
WHERE BUKRS IN BUKRS
AND KUNNR IN KUNNR
AND GJAHR IN GJAHR
AND ZUONR IN ZUONR
AND BUDAT <= BUDAT.
ITAB-WG_FLAG = '1'.
APPEND ITAB.
CLEAR ITAB.
ENDSELECT.
SELECT BUKRS KUNNR BELNR BUDAT ZUONR DMBTR XBLNR UMSKZ SHKZG BLART AUGDT HKONT
INTO (ITAB-BUKRS, ITAB-KUNNR, ITAB-BELNR, ITAB-BUDAT, ITAB-BSTKD,
ITAB-DMBTR, ITAB-FP_VBELN, ITAB-UMSKZ, ITAB-SHKZG, ITAB-BLART, ITAB-AUGDT, ITAB-HKONT)
FROM BSAD
WHERE BUKRS IN BUKRS
AND KUNNR IN KUNNR
AND GJAHR IN GJAHR
AND ZUONR IN ZUONR
AND BUDAT <= BUDAT.
APPEND ITAB.
CLEAR ITAB.
ENDSELECT.
LOOP AT ITAB.
IF ITAB-WG_FLAG = '1' AND ( ITAB-BLART = 'DA' OR ITAB-BLART = 'DZ' ).
IF ITAB-UMSKZ = 'A' OR ITAB-UMSKZ = 'S' OR ITAB-UMSKZ = 'W'.
IF ITAB-SHKZG = 'H' .
IF ITAB-HKONT = '0022030201'.
ITAB-GSSK_DMBTR = ITAB-GSSK_DMBTR + ITAB-DMBTR.
ITAB-GSUS_DMBTR = ITAB-GSUS_DMBTR + ITAB-DMBTR.
ITAB-GSYS_DMBTR = ITAB-GSYS_DMBTR - ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ELSE.
ITAB-SK_DMBTR = ITAB-SK_DMBTR + ITAB-DMBTR.
ITAB-US_DMBTR = ITAB-US_DMBTR + ITAB-DMBTR.
ITAB-YS_DMBTR = ITAB-YS_DMBTR - ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-DYSK_DMBTR = ITAB-DYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ENDIF.
ELSEIF ITAB-SHKZG = 'S' .
IF ITAB-HKONT = '0022030201'.
ITAB-GSSK_DMBTR = ITAB-GSSK_DMBTR - ITAB-DMBTR.
ITAB-GSUS_DMBTR = ITAB-GSUS_DMBTR - ITAB-DMBTR.
ITAB-GSYS_DMBTR = ITAB-GSYS_DMBTR + ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR - ITAB-DMBTR.
ENDIF.
ELSE.
ITAB-SK_DMBTR = ITAB-SK_DMBTR - ITAB-DMBTR.
ITAB-US_DMBTR = ITAB-US_DMBTR - ITAB-DMBTR.
ITAB-YS_DMBTR = ITAB-YS_DMBTR + ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-DYSK_DMBTR = ITAB-DYSK_DMBTR - ITAB-DMBTR.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF ITAB-SHKZG = 'H' .
IF ITAB-HKONT = '0011220102'.
ITAB-GSSK_DMBTR = ITAB-GSSK_DMBTR + ITAB-DMBTR.
ITAB-GSYS_DMBTR = ITAB-GSYS_DMBTR - ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ELSE.
ITAB-SK_DMBTR = ITAB-SK_DMBTR + ITAB-DMBTR.
ITAB-YS_DMBTR = ITAB-YS_DMBTR - ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-DYSK_DMBTR = ITAB-DYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ENDIF.
ELSEIF ITAB-SHKZG = 'S' .
IF ITAB-HKONT = '0011220102'.
ITAB-GSSK_DMBTR = ITAB-GSSK_DMBTR - ITAB-DMBTR.
ITAB-GSYS_DMBTR = ITAB-GSYS_DMBTR + ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ELSE.
ITAB-SK_DMBTR = ITAB-SK_DMBTR - ITAB-DMBTR.
ITAB-YS_DMBTR = ITAB-YS_DMBTR + ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-DYSK_DMBTR = ITAB-DYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSEIF ITAB-WG_FLAG = '1' AND ITAB-BLART = 'RV'.
IF ITAB-SHKZG = 'H'.
IF ITAB-HKONT = '0011220102'.
ITAB-GSYS_DMBTR = ITAB-GSYS_DMBTR - ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR - ITAB-DMBTR.
ENDIF.
ELSE.
ITAB-YS_DMBTR = ITAB-YS_DMBTR - ITAB-DMBTR.
ENDIF.
ELSEIF ITAB-SHKZG = 'S' .
IF ITAB-HKONT = '0011220102'.
ITAB-GSYS_DMBTR = ITAB-GSYS_DMBTR + ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ELSE.
ITAB-YS_DMBTR = ITAB-YS_DMBTR + ITAB-DMBTR.
ENDIF.
ENDIF.
ELSEIF ITAB-WG_FLAG = '' AND ITAB-BLART = 'RV'.
IF ITAB-SHKZG = 'H' .
IF ITAB-HKONT = '0011220102'.
IF BUDAT < ITAB-AUGDT.
ITAB-GSSK_DMBTR = ITAB-GSSK_DMBTR - ITAB-DMBTR.
ITAB-GSYS_DMBTR = ITAB-GSYS_DMBTR - ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR - ITAB-DMBTR.
ENDIF.
ELSE.
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.
ENDIF.
ELSE.
IF BUDAT < ITAB-AUGDT.
ITAB-SK_DMBTR = ITAB-SK_DMBTR - ITAB-DMBTR.
ITAB-YS_DMBTR = ITAB-YS_DMBTR - ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-DYSK_DMBTR = ITAB-DYSK_DMBTR - ITAB-DMBTR.
ENDIF.
ELSE.
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.
ELSEIF ITAB-SHKZG = 'S' .
IF ITAB-HKONT = '0011220102'.
IF BUDAT < ITAB-AUGDT.
ITAB-GSSK_DMBTR = ITAB-GSSK_DMBTR + ITAB-DMBTR.
ITAB-GSYS_DMBTR = ITAB-GSYS_DMBTR + ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ELSE.
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.
ENDIF.
ELSE.
IF BUDAT < ITAB-AUGDT.
ITAB-SK_DMBTR = ITAB-SK_DMBTR + ITAB-DMBTR.
ITAB-YS_DMBTR = ITAB-YS_DMBTR + ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-DYSK_DMBTR = ITAB-DYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ELSE.
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.
ELSEIF ITAB-WG_FLAG = '' AND ITAB-BLART <> 'RV'.
IF ITAB-UMSKZ = 'A' OR ITAB-UMSKZ = 'S' OR ITAB-UMSKZ = 'W'.
IF ITAB-SHKZG = 'H' AND BUDAT < ITAB-AUGDT.
IF ITAB-HKONT = '0022030201'.
ITAB-GSSK_DMBTR = ITAB-GSSK_DMBTR + ITAB-DMBTR.
ITAB-GSUS_DMBTR = ITAB-GSUS_DMBTR + ITAB-DMBTR.
IF ITAB-BUDAT+0(6) = BUDAT+0(6).
ITAB-GSDYSK_DMBTR = ITAB-GSDYSK_DMBTR + ITAB-DMBTR.
ENDIF.
ELSE.
ITAB-SK_DMBTR = ITAB-SK_DMBTR + ITAB-DMBTR.
ITAB-US_DMBTR = ITAB-US_DMBTR + ITAB-DMBTR.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -