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

📄 zcor0004.html

📁 SAP成本控制模块:签约合同额统计表(ABAP) 请大家参考..
💻 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 &lt;&gt; 'ZXN' AND A~AUART &lt;&gt; 'ZYC' AND A~AUART &lt;&gt; 'ZMN' AND A~ERDAT &gt;= D_FROM
      AND A~ERDAT &lt;= 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 &lt;&gt; ''
      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 &lt;&gt; 'ZXN' AND A~AUART &lt;&gt; 'ZYC' AND A~AUART &lt;&gt; 'ZMN' AND A~ERDAT &gt;= D_FROM
      AND A~ERDAT &lt;= D_TO AND A~VKORG = L_VKORG AND A~VTWEG = L_VTWEG
      AND A~VKBUR = L_VKBUR AND A~BSTNK &lt;&gt; ''
      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 &lt;&gt; 'ZXN' AND A~AUART &lt;&gt; 'ZYC' AND A~AUART &lt;&gt; 'ZMN' AND A~ERDAT &gt;= D_FROM
      AND A~ERDAT &lt;= 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 &lt;&gt; ''
      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 &lt;&gt; 'ZXN' AND A~AUART &lt;&gt; 'ZYC' AND A~AUART &lt;&gt; 'ZMN' AND A~ERDAT &gt;= D_FROM
      AND A~ERDAT &lt;= D_TO AND A~VKORG = L_VKORG AND A~VTWEG = L_VTWEG
      AND A~VKBUR = L_VKBUR AND A~BSTNK &lt;&gt; ''
      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 &lt;&gt; 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 + -