Anda di halaman 1dari 8

*&---------------------------------------------------------------------*

*& Report ZSALES_VOLUME2


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZSALES_VOLUME2.
TABLES:MARA,MAKT,VBRK,VBPA,KNA1,VBRP.
types : BEGIN OF TY_KNA1,
KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
END OF TY_KNA1.

TYPES: BEGIN OF TY_VBPA,


VBELN TYPE VBPA-VBELN,
KUNNR TYPE VBPA-KUNNR,
END OF TY_VBPA.

TYPES: BEGIN OF TY_VBRK,


VBELN TYPE VBRK-VBELN,
* VKORG TYPE VBRK-VKORG,
NETWR TYPE VBRK-NETWR,
WAERK TYPE VBRK-WAERK,
FKART TYPE VBRK-FKART,
END OF TY_VBRK.

TYPES: BEGIN OF TY_TVFKT,


FKART TYPE TVFKT-FKART,
VTEXT TYPE TVFKT-VTEXT,
END OF TY_TVFKT.

TYPES: BEGIN OF TY_VBRP,


MATNR TYPE MARA-MATNR,
VBELN TYPE VBRP-VBELN,
POSNR TYPE VBRP-POSNR,
MEINS TYPE VBRP-MEINS,
NETWR TYPE VBRP-NETWR,
* ARKTX TYPE VBRP-ARKTX,
END OF TY_VBRP.

TYPES: BEGIN OF TY_MAKT,


MATNR TYPE MAKT-MATNR,
MAKTX TYPE MAKT-MAKTX,
END OF TY_MAKT.
TYPES: BEGIN OF TY_FINAL,
KUNNR TYPE KNA1-KUNNR,
NAME1 TYPE KNA1-NAME1,
* VBELN TYPE VBPA-VBELN,
NETWR TYPE VBRK-NETWR,
WAERK TYPE VBRK-WAERK,
END OF TY_FINAL.
TYPES : BEGIN OF TY_FINAL_DOC,
KUNNR TYPE KNA1-KUNNR,
VBELN TYPE VBRK-VBELN,
VTEXT TYPE TVFKT-VTEXT,
NETWR TYPE VBRK-NETWR,
WAERK TYPE VBRK-WAERK,
END OF TY_FINAL_DOC.
TYPES: BEGIN OF TY_FINAL_MAT,
KUNNR TYPE KNA1-KUNNR,
MATNR TYPE MARA-MATNR,
MAKTX TYPE MAKT-MAKTX,
POSNR TYPE VBRP-POSNR,
MEINS TYPE VBRP-MEINS,
NETWR TYPE VBRP-NETWR,
END OF TY_FINAL_MAT.

DATA: I_KNA1 TYPE STANDARD TABLE OF TY_KNA1,


WA_KNA1 TYPE TY_KNA1,
I_VBPA TYPE STANDARD TABLE OF TY_VBPA ,
WA_VBPA TYPE TY_VBPA,
I_VBRK TYPE STANDARD TABLE OF TY_VBRK,
WA_VBRK TYPE TY_VBRK,
I_TVFKT TYPE STANDARD TABLE OF TY_TVFKT,
WA_TVFKT TYPE TY_TVFKT,
I_VBRP TYPE STANDARD TABLE OF TY_VBRP,
WA_VBRP TYPE TY_VBRP,
I_MAKT TYPE STANDARD TABLE OF TY_MAKT,
WA_MAKT TYPE TY_MAKT,
I_FINAL TYPE STANDARD TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL,
I_FINAL_DOC TYPE STANDARD TABLE OF TY_FINAL_DOC,
WA_FINAL_DOC TYPE TY_FINAL_DOC,
I_FINAL_MAT TYPE STANDARD TABLE OF TY_FINAL_MAT,
WA_FINAL_MAT TYPE TY_FINAL_MAT.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.


PARAMETERS P1 type vbrk-VKORG DEFAULT 'TW01'.
SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,
S_MATNR FOR MARA-MATNR,
S_KUNNR FOR KNA1-KUNNR,
S_FKDAT FOR VBRK-FKDAT,
S_FKART FOR VBRK-FKART.

SELECTION-SCREEN END OF BLOCK B1.


uline.
skip.
skip.
skip.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

PARAMETERS : R1 RADIOBUTTON GROUP G1, "CUSTOMER


R2 RADIOBUTTON GROUP G1," DOCUMENT
R3 RADIOBUTTON GROUP G1,"DOCUMENT AND MATERIAL.
R4 RADIOBUTTON GROUP G1."MATERIAL.
SELECTION-SCREEN END OF BLOCK B2.

START-OF-SELECTION.

IF R1 = 'X'.
PERFORM GET_KNA1.
PERFORM GET_FINAL.
ELSEIF R2 = 'X'.
PERFORM GET_VBRK.
PERFORM GET_TVFKT.
PERFORM GET_FINAL_DOC.
ELSEIF R4 = 'X'.
PERFORM GET_VBRP.
PERFORM GET_MAKT.
PERFORM GET_VBPA.
PERFORM GET_FINAL_MAT.
ENDIF.
*&---------------------------------------------------------------------*
*& Form GET_KNA1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_KNA1 .
select
kunnr
name1
FROM kna1 into TABLE i_kna1 where kunnr in s_kunnr.
ENDFORM. " GET_KNA1
*&---------------------------------------------------------------------*
*& Form GET_VBPA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_VBPA .
IF R4 = 'X'.
SELECT VBELN KUNNR FROM VBPA INTO TABLE I_VBPA
FOR ALL ENTRIES IN I_VBRP WHERE VBELN = I_VBRP-VBELN.

ELSE.
SELECT VBELN KUNNR FROM VBPA INTO TABLE I_VBPA
FOR ALL ENTRIES IN I_KNA1 WHERE KUNNR = I_KNA1-KUNNR
AND VBELN IN S_VBELN.
ENDIF.
ENDFORM. " GET_VBPA
*&---------------------------------------------------------------------*
*& Form GET_VBRK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_VBRK .
SELECT VBELN
NETWR
WAERK
FKART
FROM VBRK INTO TABLE I_VBRK FOR ALL ENTRIES IN I_VBPA WHERE
VBELN = I_VBPA-VBELN.
ENDFORM. " GET_VBRK
*&---------------------------------------------------------------------*
*& Form GET_FINAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FINAL .
LOOP AT I_VBPA INTO WA_VBPA.
READ TABLE I_VBRK WITH KEY VBELN = WA_VBPA-VBELN INTO
WA_VBRK.
IF SY-SUBRC = 0.
READ TABLE I_KNA1 WITH KEY KUNNR = WA_VBPA-KUNNR INTO
WA_KNA1.
IF SY-SUBRC = 0.

WA_FINAL-KUNNR = WA_KNA1-KUNNR.
WA_FINAL-NAME1 = WA_KNA1-NAME1.
* VBELN TYPE VBPA-VBELN,
WA_FINAL-NETWR = WA_VBRK-NETWR.
WA_FINAL-WAERK = WA_VBRK-WAERK.
ENDIF.
ENDIF.
* APPEND WA_FINAL TO I_FINAL.
COLLECT WA_FINAL INTO I_FINAL.
CLEAR: WA_KNA1,WA_VBRK,WA_VBPA,WA_FINAL.
ENDLOOP.
ENDFORM. " GET_FINAL
*&---------------------------------------------------------------------*
*& Form GET_TVFKT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_TVFKT .
SELECT
FKART
VTEXT
FROM TVFKT INTO TABLE I_TVFKT FOR ALL ENTRIES IN I_VBRK
WHERE FKART = I_VBRK-FKART.
* IF SY-SUBRC = 0.
* MESSAGE I100(00) .
* ENDIF.

ENDFORM. " GET_TVFKT


*&---------------------------------------------------------------------*
*& Form GET_FINAL_DOC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FINAL_DOC .
LOOP AT I_VBPA INTO WA_VBPA.
READ TABLE I_VBRK WITH KEY VBELN = WA_VBPA-VBELN INTO
WA_VBRK.
IF SY-SUBRC = 0.
READ TABLE I_KNA1 WITH KEY KUNNR = WA_VBPA-KUNNR INTO
WA_KNA1.
IF SY-SUBRC = 0.
READ TABLE I_TVFKT WITH KEY FKART = WA_VBRK-FKART INTO
WA_TVFKT.
IF SY-SUBRC = 0.

WA_FINAL_DOC-KUNNR = WA_KNA1-KUNNR.
WA_FINAL_DOC-VBELN = WA_VBRK-VBELN.
* VBELN TYPE VBPA-VBELN,
WA_FINAL_DOC-NETWR = WA_VBRK-NETWR.
WA_FINAL_DOC-WAERK = WA_VBRK-WAERK.
WA_FINAL_DOC-VTEXT = WA_TVFKT-VTEXT.

ENDIF.
ENDIF.
ENDIF.
* APPEND WA_FINAL TO I_FINAL.
COLLECT WA_FINAL_DOC INTO I_FINAL_DOC.
CLEAR: WA_KNA1,WA_VBRK,WA_VBPA,WA_FINAL_DOC,WA_TVFKT.

ENDLOOP.

ENDFORM. " GET_FINAL_DOC


*&---------------------------------------------------------------------*
*& Form GET_MAKT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_MAKT .
SELECT MATNR MAKTX FROM MAKT INTO TABLE I_MAKT
WHERE MATNR IN S_MATNR.
ENDFORM. " GET_MAKT
*&---------------------------------------------------------------------*
*& Form GET_FINAL_MAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FINAL_MAT .
SORT I_VBRP BY VBELN.
SORT I_VBPA BY VBELN.
LOOP AT I_VBRP INTO WA_VBRP.
READ TABLE I_VBPA WITH KEY VBELN = WA_VBRP-VBELN INTO
WA_VBPA.
IF SY-SUBRC = 0.
READ TABLE I_MAKT WITH KEY MATNR = WA_VBRP-MATNR INTO
WA_MAKT.
IF SY-SUBRC = 0.
* READ TABLE I_TVFKT WITH KEY FKART = WA_VBRK-FKART INTO
WA_TVFKT.
* IF SY-SUBRC = 0.

* WA_FINAL_MAT-KUNNR = WA_KNA1-KUNNR.
* WA_FINAL_MAT-MATNR = WA_VBRK-VBELN.
** VBELN TYPE VBPA-VBELN,
* WA_FINAL_MAT-ARKTX = WA_
* WA_FINAL_MAT-NETWR = WA_VBRK-NETWR.
* WA_FINAL_MAT-WAERK = WA_VBRK-WAERK.
* WA_FINAL_MAT-VTEXT = WA_TVFKT-VTEXT.

WA_FINAL_MAT-KUNNR = WA_VBPA-KUNNR.
WA_FINAL_MAT-MATNR = WA_MAKT-MATNR.
WA_FINAL_MAT-MAKTX = WA_MAKT-MAKTX.
WA_FINAL_MAT-POSNR = WA_VBRP-POSNR.
WA_FINAL_MAT-MEINS = WA_VBRP-MEINS.
WA_FINAL_MAT-NETWR = WA_VBRP-NETWR.
APPEND WA_FINAL_MAT TO I_FINAL_MAT.

* ENDIF.
ENDIF.
ENDIF.
* APPEND WA_FINAL_MAT TO I_FINAL.
* COLLECT WA_FINAL_MAT INTO I_FINAL_MAT.
CLEAR: WA_VBPA,WA_VBRP,WA_FINAL_MAT,WA_MAKT.

ENDLOOP.
ENDFORM. " GET_FINAL_MAT
*&---------------------------------------------------------------------*
*& Form GET_VBRP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_VBRP .
SELECT
matnr
VBELN
POSNR
MEINS
NETWR FROM VBRP INTO TABLE I_VBRP where MATNR IN S_MATNR.

ENDFORM. " GET_VBRP

Anda mungkin juga menyukai