📄 zcor0004.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>ZCOR0004</title>
</head>
<body bgcolor="#FFFFE0">
<font size="3" face = "Arial" color="#000000"><b>Code listing for: ZCOR0004</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 ZCOR0004</font>
<font color ="#0000FF">*&</font>
<font color ="#0000FF">*&---------------------------------------------------------------------*</font>
<font color ="#0000FF">*&</font>
<font color ="#0000FF">*&</font>
<font color ="#0000FF">*&---------------------------------------------------------------------*</font>
REPORT ZCOR0004 MESSAGE-ID ZX.
TABLES:VBAK,VBEP,VBAP,VBKD.
TYPES:BEGIN OF T_DATA,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
BSTNK LIKE VBAK-BSTNK,
ERDAT LIKE VBAK-ERDAT,
BZIRK LIKE VBKD-BZIRK,
BZTXT LIKE T171T-BZTXT,
VKORG LIKE VBAK-VKORG,
VTEXT LIKE TVTWT-VTEXT,
VTWEG LIKE VBAK-VTWEG,
VTEXT2 LIKE TVTWT-VTEXT,
KNUMV LIKE VBAK-KNUMV,
VKBUR LIKE VBAK-VKBUR,
BEZEI LIKE TVKBT-BEZEI,
KWERT1 LIKE KONV-KWERT,
END OF T_DATA.
TYPES:BEGIN OF T_TOTAL,
BZIRK LIKE VBKD-BZIRK,
BZTXT LIKE T171T-BZTXT,
VKORG LIKE VBAK-VKORG,
VTEXT LIKE TVTWT-VTEXT,
VTWEG LIKE VBAK-VTWEG,
VTEXT2 LIKE TVTWT-VTEXT,
VKBUR LIKE VBAK-VKBUR,
BEZEI LIKE TVKBT-BEZEI,
AMOUNT TYPE I,
KWERT LIKE KONV-KWERT,
TAMOUNT TYPE I,
TKWERT LIKE KONV-KWERT,
END OF T_TOTAL.
DATA:ITAB_DATA TYPE TABLE OF T_DATA,
WA_DATA TYPE T_DATA,
ITAB_TOTAL TYPE TABLE OF T_TOTAL,
WA_TOTAL TYPE T_TOTAL.
<font color ="#0000FF">********************************************************************</font>
<font color ="#0000FF">* SELECT-OPTIONS</font>
<font color ="#0000FF">********************************************************************</font>
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
PARAMETER:P_GJAHR LIKE MSEG-GJAHR OBLIGATORY,
P_MONAT LIKE BKPF-MONAT OBLIGATORY.
SELECT-OPTIONS:S_VKORG FOR VBAK-VKORG,
S_VTWEG FOR VBAK-VTWEG,
S_VKBUR FOR VBAK-VKBUR,
S_BZIRK FOR VBKD-BZIRK.
SELECTION-SCREEN END OF BLOCK BLK.
INITIALIZATION.
P_GJAHR = SY-DATUM(4).
P_MONAT = SY-DATUM+4(2).
<font color ="#0000FF">***************************************************************</font>
<font color ="#0000FF">* AT SELECTION-SCREEN</font>
<font color ="#0000FF">***************************************************************</font>
AT SELECTION-SCREEN.
DATA:L_VKORG LIKE TVKBZ-VKORG,
L_VTWEG LIKE TVKBZ-VTWEG,
L_VKBUR LIKE TVKBZ-VKBUR,
L_BZIRK LIKE T171-BZIRK.
REFRESH ITAB_TOTAL.
SELECT VKORG VTWEG VKBUR INTO (L_VKORG,L_VTWEG,L_VKBUR)
FROM TVKBZ WHERE SPART = '00'.
IF L_VTWEG = '11'.
SELECT BZIRK INTO L_BZIRK FROM T171.
CLEAR:WA_TOTAL.
SELECT SINGLE VTEXT INTO WA_TOTAL-VTEXT FROM TVKOT WHERE VKORG = L_VKORG AND SPRAS = '1'.
SELECT SINGLE VTEXT INTO WA_TOTAL-VTEXT2 FROM TVTWT WHERE VTWEG = L_VTWEG AND SPRAS = '1'.
SELECT SINGLE BEZEI INTO WA_TOTAL-BEZEI FROM TVKBT WHERE VKBUR = L_VKBUR AND SPRAS = '1'.
SELECT SINGLE BZTXT INTO WA_TOTAL-BZTXT FROM T171T WHERE BZIRK = L_BZIRK AND SPRAS = '1'.
REFRESH ITAB_DATA.
PERFORM SUB_SELECT_DATA USING L_VKORG L_VTWEG L_VKBUR L_BZIRK.
ENDSELECT.
ELSE.
SELECT SINGLE VTEXT INTO WA_TOTAL-VTEXT FROM TVKOT WHERE VKORG = L_VKORG AND SPRAS = '1'.
SELECT SINGLE VTEXT INTO WA_TOTAL-VTEXT2 FROM TVTWT WHERE VTWEG = L_VTWEG AND SPRAS = '1'.
SELECT SINGLE BEZEI INTO WA_TOTAL-BEZEI FROM TVKBT WHERE VKBUR = L_VKBUR AND SPRAS = '1'.
PERFORM SUB_SELECT_DATA USING L_VKORG L_VTWEG L_VKBUR ''.
ENDIF.
ENDSELECT.
<font color ="#0000FF">***************************************************************</font>
<font color ="#0000FF">* START-OF-SELECTION</font>
<font color ="#0000FF">***************************************************************</font>
START-OF-SELECTION.
DELETE ITAB_TOTAL WHERE AMOUNT = 0 AND TAMOUNT = 0.
PERFORM OUTPUT_DATA.
<font color ="#0000FF">***************************************************************</font>
<font color ="#0000FF">* END-OF-SELECTION</font>
<font color ="#0000FF">***************************************************************</font>
END-OF-SELECTION.
<font color ="#0000FF">*&-------------------------------------------------------------</font>
<font color ="#0000FF">*& Form SUB_SELECT_DATA</font>
<font color ="#0000FF">*&-------------------------------------------------------------</font>
FORM SUB_SELECT_DATA USING L_VKORG L_VTWEG L_VKBUR L_BZIRK.
DATA:D_FROM(8) TYPE C,
D_TO(8) TYPE C.
DATA:KWERT LIKE KONV-KWERT.
CONCATENATE P_GJAHR P_MONAT '01' INTO D_FROM.
CONCATENATE P_GJAHR P_MONAT '31' INTO D_TO.
IF L_VTWEG = '11'.
SELECT A~VBELN B~POSNR A~BSTNK A~ERDAT A~VKBUR C~BZIRK
A~VKORG A~VTWEG B~KWMENG A~KNUMV
INTO CORRESPONDING FIELDS OF TABLE ITAB_DATA
FROM VBAK AS A
INNER JOIN VBAP AS B ON A~VBELN = B~VBELN
INNER JOIN VBKD AS C ON A~VBELN = C~VBELN AND C~POSNR = '000000'"C~POSNR
WHERE A~AUART <> 'ZXN' AND A~AUART <> 'ZYC' AND A~AUART <> 'ZMN' AND A~ERDAT >= D_FROM
AND A~ERDAT <= D_TO AND A~VKORG = L_VKORG AND A~VTWEG = L_VTWEG
AND A~VKBUR = L_VKBUR AND C~BZIRK = L_BZIRK AND A~BSTNK <> ''
AND A~VKORG IN S_VKORG AND A~VTWEG IN S_VTWEG
AND A~VKBUR IN S_VKBUR AND C~BZIRK IN S_BZIRK
ORDER BY A~BSTNK.
ELSE.
SELECT A~VBELN B~POSNR A~BSTNK A~ERDAT A~VKBUR C~BZIRK
A~VKORG A~VTWEG B~KWMENG A~KNUMV
INTO CORRESPONDING FIELDS OF TABLE ITAB_DATA
FROM VBAK AS A
INNER JOIN VBAP AS B ON A~VBELN = B~VBELN
INNER JOIN VBKD AS C ON A~VBELN = C~VBELN AND C~POSNR = '000000'"C~POSNR
WHERE A~AUART <> 'ZXN' AND A~AUART <> 'ZYC' AND A~AUART <> 'ZMN' AND A~ERDAT >= D_FROM
AND A~ERDAT <= D_TO AND A~VKORG = L_VKORG AND A~VTWEG = L_VTWEG
AND A~VKBUR = L_VKBUR AND A~BSTNK <> ''
AND A~VKORG IN S_VKORG AND A~VTWEG IN S_VTWEG
AND A~VKBUR IN S_VKBUR AND C~BZIRK IN S_BZIRK
ORDER BY A~BSTNK.
ENDIF.
CLEAR:KWERT,WA_DATA-KWERT1.
LOOP AT ITAB_DATA INTO WA_DATA.
ON CHANGE OF WA_DATA-BSTNK.
WA_TOTAL-AMOUNT = WA_TOTAL-AMOUNT + 1.
ENDON.
SELECT SINGLE KWERT INTO KWERT FROM KONV
WHERE KPOSN = WA_DATA-POSNR AND KNUMV = WA_DATA-KNUMV
AND KSCHL = 'MWSI'.
SELECT SINGLE KWERT INTO WA_DATA-KWERT1 FROM KONV
WHERE KPOSN = WA_DATA-POSNR AND KNUMV = WA_DATA-KNUMV
AND KSCHL = 'NETW'.
WA_TOTAL-KWERT = WA_TOTAL-KWERT + KWERT + WA_DATA-KWERT1.
ENDLOOP.
CONCATENATE P_GJAHR '01' '01' INTO D_FROM.
CONCATENATE P_GJAHR '12' '31' INTO D_TO.
IF L_VTWEG = '11'.
SELECT A~VBELN B~POSNR A~BSTNK A~ERDAT A~VKBUR C~BZIRK
A~VKORG A~VTWEG B~KWMENG A~KNUMV
INTO CORRESPONDING FIELDS OF TABLE ITAB_DATA
FROM VBAK AS A
INNER JOIN VBAP AS B ON A~VBELN = B~VBELN
INNER JOIN VBKD AS C ON A~VBELN = C~VBELN AND C~POSNR = '000000'"C~POSNR
WHERE A~AUART <> 'ZXN' AND A~AUART <> 'ZYC' AND A~AUART <> 'ZMN' AND A~ERDAT >= D_FROM
AND A~ERDAT <= D_TO AND A~VKORG = L_VKORG AND A~VTWEG = L_VTWEG
AND A~VKBUR = L_VKBUR AND C~BZIRK = L_BZIRK AND A~BSTNK <> ''
AND A~VKORG IN S_VKORG AND A~VTWEG IN S_VTWEG
AND A~VKBUR IN S_VKBUR AND C~BZIRK IN S_BZIRK
ORDER BY A~BSTNK.
ELSE.
SELECT A~VBELN B~POSNR A~BSTNK A~ERDAT A~VKBUR C~BZIRK
A~VKORG A~VTWEG B~KWMENG A~KNUMV
INTO CORRESPONDING FIELDS OF TABLE ITAB_DATA
FROM VBAK AS A
INNER JOIN VBAP AS B ON A~VBELN = B~VBELN
INNER JOIN VBKD AS C ON A~VBELN = C~VBELN AND C~POSNR = '000000'"C~POSNR
WHERE A~AUART <> 'ZXN' AND A~AUART <> 'ZYC' AND A~AUART <> 'ZMN' AND A~ERDAT >= D_FROM
AND A~ERDAT <= D_TO AND A~VKORG = L_VKORG AND A~VTWEG = L_VTWEG
AND A~VKBUR = L_VKBUR AND A~BSTNK <> ''
AND A~VKORG IN S_VKORG AND A~VTWEG IN S_VTWEG
AND A~VKBUR IN S_VKBUR AND C~BZIRK IN S_BZIRK
ORDER BY A~BSTNK.
ENDIF.
CLEAR:KWERT,WA_DATA-KWERT1.
LOOP AT ITAB_DATA INTO WA_DATA.
ON CHANGE OF WA_DATA-BSTNK.
WA_TOTAL-TAMOUNT = WA_TOTAL-TAMOUNT + 1.
ENDON.
SELECT SINGLE KWERT INTO KWERT FROM KONV
WHERE KPOSN = WA_DATA-POSNR AND KNUMV = WA_DATA-KNUMV
AND KSCHL = 'MWSI'.
SELECT SINGLE KWERT INTO WA_DATA-KWERT1 FROM KONV
WHERE KPOSN = WA_DATA-POSNR AND KNUMV = WA_DATA-KNUMV
AND KSCHL = 'NETW'.
WA_TOTAL-TKWERT = WA_TOTAL-TKWERT + KWERT + WA_DATA-KWERT1.
ENDLOOP.
APPEND WA_TOTAL TO ITAB_TOTAL.
ENDFORM.
<font color ="#0000FF">*&-------------------------------------------------------------</font>
<font color ="#0000FF">*& Form OUTPUT_DATA</font>
<font color ="#0000FF">*&-------------------------------------------------------------</font>
FORM OUTPUT_DATA.
type-pools slis.
data: allfields type slis_t_fieldcat_alv.
data: wa_allfields type line of slis_t_fieldcat_alv.
<font color ="#0000FF">* myrepid = sy-repid.</font>
clear wa_allfields.
wa_allfields-fieldname = 'VTEXT'.
wa_allfields-seltext_l = '销售组织'.
wa_allfields-outputlen = 20.
append wa_allfields to allfields.
clear wa_allfields.
wa_allfields-fieldname = 'VTEXT2'.
wa_allfields-seltext_l = '分销渠道'.
wa_allfields-outputlen = 20.
append wa_allfields to allfields.
clear wa_allfields.
wa_allfields-fieldname = 'BZTXT'.
wa_allfields-seltext_l = '销售大区'.
append wa_allfields to allfields.
clear wa_allfields.
wa_allfields-fieldname = 'BEZEI'.
wa_allfields-seltext_l = '销售部门'.
append wa_allfields to allfields.
clear wa_allfields.
wa_allfields-fieldname = 'AMOUNT'.
wa_allfields-seltext_l = '本月订单数量'.
wa_allfields-outputlen = 15.
append wa_allfields to allfields.
clear wa_allfields.
wa_allfields-fieldname = 'KWERT'.
wa_allfields-seltext_l = '本月签约额'.
wa_allfields-outputlen = 15.
append wa_allfields to allfields.
clear wa_allfields.
wa_allfields-fieldname = 'TAMOUNT'.
wa_allfields-seltext_l = '累计订单数量'.
wa_allfields-outputlen = 15.
append wa_allfields to allfields.
clear wa_allfields.
wa_allfields-fieldname = 'TKWERT'.
wa_allfields-seltext_l = '累计签约额'.
wa_allfields-outputlen = 15.
append wa_allfields to allfields.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
I_GRID_TITLE = '签约合同额统计表ALV显示'
IT_FIELDCAT = allfields
I_SAVE = 'X'
TABLES
T_OUTTAB = ITAB_TOTAL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
<font color ="#0000FF">* IF SY-SUBRC <> 0.</font>
<font color ="#0000FF">* * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO</font>
<font color ="#0000FF">* * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.</font>
<font color ="#0000FF">* ENDIF.</font>
ENDFORM. "output_data
<font color ="#0000FF">*Selection texts</font>
<font color ="#0000FF">*----------------------------------------------------------</font>
<font color ="#0000FF">* P_GJAHR 下单年度</font>
<font color ="#0000FF">* P_MONAT 下单月份</font>
<font color ="#0000FF">* S_BZIRK 销售大区</font>
<font color ="#0000FF">* S_VKBUR 销售办公室</font>
<font color ="#0000FF">* S_VKORG 销售组织</font>
<font color ="#0000FF">* S_VTWEG 销售渠道</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 + -