Вы находитесь на странице: 1из 7

REPORT zreportsk4.

TABLES : vbak , vbap, konv, konp, komv, kna1.


TYPE-POOLS : slis.

TYPES : BEGIN OF ty_vbak,


vbeln TYPE vbak-vbeln, "SALES DOCUMENT
erdat TYPE vbak-erdat, "DATE CREATED
auart TYPE vbak-auart, "SALES DOCUMENT TYPE
kurst TYPE vbak-kurst, "EXCHANGE RATE
knumv TYPE vbak-knumv,
kunnr TYPE vbak-kunnr,
END OF ty_vbak.
DATA : it_vbak TYPE TABLE OF ty_vbak.
DATA : wa_vbak TYPE ty_vbak.

TYPES : BEGIN OF ty_vbap,


vbeln TYPE vbap-vbeln, "SALES DOCUMENT
werks TYPE vbap-werks, "Plant
matnr TYPE vbap-matnr, "MATERIAL NUMBER
arktx TYPE vbap-arktx, "MATERIAL DESCRIPTION
kwmeng TYPE vbap-kwmeng, "quantity
END OF ty_vbap.
DATA : it_vbap TYPE TABLE OF ty_vbap.
DATA : wa_vbap TYPE ty_vbap.

TYPES : BEGIN OF ty_konv,


knumv TYPE konv-knumv, "CONDITION TYPE
kposn TYPE konv-kposn,
kschl TYPE konv-kschl,
kbetr TYPE konv-kbetr, "Rate
zlpp TYPE konv-kbetr,
zesp TYPE konv-kbetr,
joig TYPE konv-kbetr,
jocg TYPE konv-kbetr,
josg TYPE konv-kbetr,
END OF ty_konv.
DATA : it_konv TYPE TABLE OF ty_konv.
DATA : wa_konv TYPE ty_konv.

TYPES : BEGIN OF ty_tvakt,


auart TYPE tvakt-auart,
spras TYPE tvakt-spras,
bezei TYPE tvakt-bezei,
END OF ty_tvakt.
DATA : it_tvakt TYPE TABLE OF ty_tvakt.
DATA : wa_tvakt TYPE ty_tvakt.

TYPES : BEGIN OF ty_kna1,


kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
regio TYPE kna1-regio,
END OF ty_kna1.
DATA : it_kna1 TYPE TABLE OF ty_kna1.
DATA : wa_kna1 TYPE ty_kna1.

TYPES : BEGIN OF ty_t001w,


werks TYPE t001w-werks,
kunnr type t001w-kunnr,
pregio TYPE t001w-regio,
END OF ty_t001w.
DATA : it_t001w TYPE TABLE OF ty_t001w.
DATA : wa_t001w TYPE ty_t001w.

*TYPES : BEGIN OF ty_komv,


* knumv TYPE komv-knumv, "CONDITION TYPE
* waerk type komv-kwert,
* END OF ty_komv.
*DATA : it_komv TYPE TABLE OF ty_komv.
*DATA : wa_komv TYPE ty_komv.

TYPES : BEGIN OF ty_final,


vbeln TYPE vbak-vbeln, "SALES DOCUMENT
erdat TYPE vbak-erdat, "DATE CREATED
auart TYPE vbak-auart, "SALES DOCUMENT TYPE
bezei TYPE tvakt-bezei, "Order Type Description
werks TYPE vbap-werks, "Plant InformatioN
matnr TYPE vbap-matnr, "MATERIAL NUMBER
arktx TYPE vbap-arktx, "MATERIAL DESCRIPTION
kwmeng TYPE vbap-kwmeng, "QUANTITY
knumh TYPE konv-knumh,
knumv TYPE konv-knumv,
kschl TYPE konv-kschl,
kbetr TYPE konv-kbetr,
zlpp TYPE konv-kbetr,
zesp TYPE konv-kbetr,
joig TYPE konv-kbetr,
jocg TYPE konv-kbetr,
josg TYPE konv-kbetr,
kunnr TYPE vbak-kunnr,
name1 TYPE kna1-name1,
regio TYPE kna1-regio,
pregio TYPE t001w-regio,
END OF ty_final.
DATA : it_final TYPE TABLE OF ty_final,
wa_final TYPE ty_final.

SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-c01.


SELECT-OPTIONS : so_num FOR vbak-vbeln NO-EXTENSION NO INTERVALS,
dtype FOR vbak-auart NO-EXTENSION NO INTERVALS,
date FOR vbak-erdat OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK b1.

DATA: it_fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.


* gd_layout TYPE slis_layout_alv, "to change the layout of the grid or
list
* gd_repid LIKE sy-repid, "PROGRAM NAME
* g_save TYPE c VALUE 'X', "save default value
* g_variant TYPE disvariant,
* gx_variant TYPE disvariant,
* g_exit TYPE c,
* ispfli TYPE TABLE OF spfli.
DATA : wa_fcat LIKE LINE OF it_fcat.

START-OF-SELECTION.
PERFORM getdata.
PERFORM create_fcat.
PERFORM display_alv.
FORM getdata.
SELECT
vbeln
auart
erdat
knumv
kunnr
FROM vbak INTO CORRESPONDING FIELDS OF TABLE it_vbak WHERE vbeln IN so_num AND
auart IN dtype AND erdat IN date.
IF it_vbak IS NOT INITIAL.
SELECT
vbeln
posnr
aufnr
werks
matnr
arktx
kwmeng
FROM vbap INTO CORRESPONDING FIELDS OF TABLE it_vbap
FOR ALL ENTRIES IN it_vbak WHERE vbeln = it_vbak-vbeln.

SELECT knumv
kposn
kschl
kbetr
FROM konv INTO CORRESPONDING FIELDS OF TABLE it_konv FOR ALL ENTRIES IN it_vbak
WHERE knumv = it_vbak-knumv.

SELECT
auart
spras
bezei
FROM tvakt INTO CORRESPONDING FIELDS OF TABLE it_tvakt FOR ALL ENTRIES IN
it_vbak
WHERE auart = it_vbak-auart.

SELECT
name1
kunnr
regio
FROM kna1 INTO CORRESPONDING FIELDS OF TABLE it_kna1 FOR ALL ENTRIES IN it_vbak
WHERE kunnr = it_vbak-kunnr.

SELECT
werks
kunnr
regio
FROM t001w INTO CORRESPONDING FIELDS OF TABLE it_t001w FOR ALL ENTRIES IN
it_vbap
WHERE werks = it_vbap-werks.

* SELECT knumv
* waerk "currency
* FROM komv INTO CORRESPONDING FIELDS OF TABLE it_komv FOR ALL ENTRIES IN
IT_VBAK
* WHERE knumv = IT_VBAK-knumv.

ENDIF.
CLEAR: wa_final, wa_vbap.
LOOP AT it_vbap INTO wa_vbap.
wa_final-vbeln = wa_vbap-vbeln.
wa_final-werks = wa_vbap-werks.
wa_final-matnr = wa_vbap-matnr.
wa_final-arktx = wa_vbap-arktx.
wa_final-kwmeng = wa_vbap-kwmeng.
CLEAR wa_vbak.
READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln.
IF sy-subrc = '0'.
wa_final-erdat = wa_vbak-erdat.
wa_final-auart = wa_vbak-auart.
ENDIF.

"Rate
CLEAR wa_konv.
READ TABLE it_konv INTO wa_konv WITH KEY knumv = wa_vbak-knumv
kschl = 'ZLPP'.
IF sy-subrc = '0'.
wa_final-KBETR = wa_konv-kbetr.
ENDIF.

CLEAR wa_konv.
READ TABLE it_konv INTO wa_konv WITH KEY knumv = wa_vbak-knumv
kschl = 'ZESP'.
IF sy-subrc = '0'.
wa_final-KBETR = wa_konv-kbetr.
ENDIF.

"JOIG
CLEAR wa_konv.
READ TABLE it_konv INTO wa_konv WITH KEY knumv = wa_vbak-knumv
kschl = 'JOIG'.
IF sy-subrc = '0'.
wa_final-joig = wa_konv-kbetr / 10.
ENDIF.

"JOCG
CLEAR wa_konv.
READ TABLE it_konv INTO wa_konv WITH KEY knumv = wa_vbak-knumv
kschl = 'JOCG'.
IF sy-subrc = '0'.
wa_final-jocg = wa_konv-kbetr / 10 .
ENDIF.

"JOSG
CLEAR wa_konv.
READ TABLE it_konv INTO wa_konv WITH KEY knumv = wa_vbak-knumv
kschl = 'JOSG'.
IF sy-subrc = '0'.
wa_final-josg = wa_konv-kbetr / 10 .
ENDIF.

"Type description
CLEAR wa_tvakt.
READ TABLE it_tvakt INTO wa_tvakt WITH KEY auart = wa_vbak-auart
spras = 'E'.
IF sy-subrc = '0'.
wa_final-bezei = wa_tvakt-bezei.
ENDIF.

"Name of customer & Region


CLEAR wa_kna1.
READ TABLE it_kna1 INTO wa_kna1 WITH KEY kunnr = wa_vbak-kunnr.
IF sy-subrc = '0'.
wa_final-kunnr = wa_vbak-kunnr.
wa_final-name1 = wa_kna1-name1.
wa_final-regio = wa_kna1-regio.
ENDIF.

"Plant Region
CLEAR wa_t001w.
READ TABLE it_t001w INTO wa_t001w WITH KEY werks = wa_vbap-werks. "kunnr =
wa_vbak-kunnr.
IF sy-subrc = '0'.
* wa_final-pwerks = wa_t001w-pwerks.
wa_final-pregio = wa_t001w-pregio.
ENDIF.

APPEND wa_final TO it_final.


CLEAR : wa_final, wa_vbap.
ENDLOOP.
ENDFORM.

FORM create_fcat . "CREATE FIELD CATAELOG

wa_fcat-fieldname = 'ERDAT'.
wa_fcat-seltext_m = 'Date'.
wa_fcat-outputlen = '10'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'VBELN'.
wa_fcat-seltext_m = 'Sale Order'.
wa_fcat-outputlen = '12'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'AUART'.
wa_fcat-seltext_m = 'Order Type'.
wa_fcat-outputlen = '10'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'BEZEI'.
wa_fcat-seltext_m = 'Type Description'.
wa_fcat-outputlen = '20'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'KUNNR'.
wa_fcat-seltext_m = 'Sold to Party'.
wa_fcat-outputlen = '10'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'NAME1'.
wa_fcat-seltext_m = 'Name of Party'.
wa_fcat-outputlen = '23'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'REGIO'.
wa_fcat-seltext_m = 'C Region'.
wa_fcat-outputlen = '8'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'WERKS'.
wa_fcat-seltext_m = 'Plant'.
wa_fcat-outputlen = '5'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'PREGIO'.
wa_fcat-seltext_m = 'Plant Region'.
* wa_fcat-tabname = 'T001W'.
wa_fcat-outputlen = '10'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'MATNR'.
wa_fcat-seltext_m = 'Material no.'.
wa_fcat-outputlen = '20'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'ARKTX'.
wa_fcat-seltext_m = 'Material Description'.
wa_fcat-outputlen = '40'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'KWMENG'.
wa_fcat-seltext_m = 'Quantity'.
wa_fcat-outputlen = '9'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'KBETR'.
wa_fcat-seltext_m = 'Rate'.
wa_fcat-outputlen = '7'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'JOIG'.
wa_fcat-seltext_m = 'JOIG'.
wa_fcat-outputlen = '5'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

wa_fcat-fieldname = 'JOCG'.
wa_fcat-seltext_m = 'JOCG'.
wa_fcat-outputlen = '5'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'JOSG'.
wa_fcat-seltext_m = 'JOSG'.
wa_fcat-outputlen = '5'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.

ENDFORM.

FORM display_alv.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
it_fieldcat = it_fcat[]
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.

Вам также может понравиться