Sunteți pe pagina 1din 5

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

*& Report ZSD_R_RDD002_DELV_REP_B42


*&
*&---------------------------------------------------------------------*
*& Author :Subash
*& Title :Delivery Report
*& Description:Display the Detail Delivery Report consists of details
*& of the goods that are dispatched to the customer.
*& Transport : SMPK900919
*& Version : V1
*&---------------------------------------------------------------------*
*& Version Transport req Description
*&---------------------------------------------------------------------*
*& V2 SMPK900923 Addition of two new fields
*& ship to party and cust city
*&---------------------------------------------------------------------*
REPORT ZSD_R_RDD002_DELV_OOPS_REP_B42 LINE-SIZE 150 NO STANDARD PAGE HEADING.
*&---------------------------------------------------------------------*
*& Structure declaration
*&---------------------------------------------------------------------*
TYPES:
* Structure declaration for final output
BEGIN OF TY_OUTPUT,
VBELN TYPE VBELN_VL, "Delivery Num
ERDAT TYPE ERDAT, "Doc Date
BZIRK TYPE BZIRK, "Sales district
ROUTE TYPE ROUTE, "Route
KUNNR TYPE KUNWE, "Ship to pArty
XABLN TYPE XABLN, "GR

NAME1 TYPE NAME1_GP, "Cust Name


ORT01_T TYPE ORT01_GP, "To City
PSTLZ TYPE PSTLZ, "Postal
REGIO TYPE REGIO, "Region
TELF2 TYPE TELF2, "Mobile Num

POSNR TYPE POSNR_VL, "Delv Item


MATNR TYPE MATNR, "Material
WERKS TYPE WERKS_D, "Plant
LFIMG TYPE LFIMG, "Quantity
ARKTX TYPE ARKTX, "Shot Text for Sales Item
ORT01_F TYPE ORT01, " From City
END OF TY_OUTPUT.

*&---------------------------------------------------------------------*
*& Internal table declaration
*&---------------------------------------------------------------------*
* Internal table declaration for delviery header
DATA:T_LIKP TYPE STANDARD TABLE OF LIKP INITIAL SIZE 0,

* Internal table declaration for delviery item data


T_LIPS TYPE STANDARD TABLE OF LIPS INITIAL SIZE 0,

* Internal table declaration for ship to party address


T_KNA1 TYPE STANDARD TABLE OF KNA1 INITIAL SIZE 0,

* Internal table declaration for final output


T_OUTPUT TYPE STANDARD TABLE OF TY_OUTPUT INITIAL SIZE 0,
*&---------------------------------------------------------------------*
*& Work area declaration
*&---------------------------------------------------------------------*
* Work area declaration for delivery header
W_LIKP TYPE LIKP,

* Work area declaration for delivery item


W_LIPS TYPE LIPS,

* WOrk area declaration for Ship to Party Address


W_KNA1 TYPE KNA1,

* WOrk area declaration for final output


W_OUTPUT TYPE TY_OUTPUT,
*&---------------------------------------------------------------------*
*& Global Variable declaration
*&---------------------------------------------------------------------*

G_VBELN TYPE LIKP-VBELN,

G_MAIN TYPE REF TO ZCL_GET_DELIVERY_DATA_B42.


*&---------------------------------------------------------------------*
*& Selection screen declaration
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS:S_VBELN FOR G_VBELN .
SELECTION-SCREEN END OF BLOCK B1.

*&---------------------------------------------------------------------*
*& Initialization declaration
*&---------------------------------------------------------------------*
INITIALIZATION.

* Clear work areas


CLEAR:W_LIKP,
W_LIPS,
W_KNA1,
W_OUTPUT.

* Refresh table
REFRESH:T_LIKP,
T_LIPS,
T_KNA1,
T_OUTPUT.

*&---------------------------------------------------------------------*
*& At Selection screen declaration
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.

* Validate delivery number


PERFORM SUB_VALIDATE_VBELN.
*&---------------------------------------------------------------------*
*& Start of Selection declaration
*&---------------------------------------------------------------------*
START-OF-SELECTION.

* Creating the object for main class


CREATE OBJECT G_MAIN.

* Get LIKP data


CALL METHOD G_MAIN->GET_LIKP
EXPORTING
VBELN_LOW = S_VBELN-LOW
VBELN_HIGH = S_VBELN-HIGH
IMPORTING
T_LIKP = T_LIKP.

*Get LIPS data


CALL METHOD G_MAIN->GET_LIPS
EXPORTING
T_LIKP = T_LIKP
IMPORTING
T_LIPS = T_LIPS.

* Get Kna1 data


CALL METHOD G_MAIN->GET_KNA1
EXPORTING
T_LIKP = T_LIKP
IMPORTING
T_KNA1 = T_KNA1.

*&---------------------------------------------------------------------*
*& Top of page declaration
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
ULINE.
WRITE:/45 'DELIVERY REPORT'.
ULINE.
WRITE:/2 'line',
7 'Delivery Num',
20 'Delv Item',
30 'Material',
40 'Plant',
50 'Doc Date',
65 'Sales Dist',
75 'Route',
85 'Cust Name',
105 'From City',
120 'To City',
130 'Qualtity'.
ULINE.
*&---------------------------------------------------------------------*
*& End of Selection declaration
*&---------------------------------------------------------------------*
END-OF-SELECTION.

* Populating final output


PERFORM SUB_POP_OUTPUT.

* Displaying the data


PERFORM SUB_DISP_DATA.
*&---------------------------------------------------------------------*
*& Form SUB_VALIDATE_VBELN
*&---------------------------------------------------------------------*
* This routine is used to validate delivery number
*----------------------------------------------------------------------*
FORM SUB_VALIDATE_VBELN .
DATA:L_VBELN TYPE VBELN_VL.
SELECT SINGLE VBELN
FROM VBUK
INTO L_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE E003(ZBATCH42) WITH 'Data not found from' S_VBELN-LOW 'to' S_VBELN-
HIGH.
ENDIF.
ENDFORM. " SUB_VALIDATE_VBELN
*&---------------------------------------------------------------------*
*& Form SUB_POP_OUTPUT
*&---------------------------------------------------------------------*
* This routine is used to populate final output
*----------------------------------------------------------------------*
FORM SUB_POP_OUTPUT .

LOOP AT T_LIPS INTO W_LIPS.

* Moving delivery item to final output


W_OUTPUT-VBELN = W_LIPS-VBELN.
W_OUTPUT-POSNR = W_LIPS-POSNR.
W_OUTPUT-MATNR = W_LIPS-MATNR.
W_OUTPUT-WERKS = W_LIPS-WERKS.
W_OUTPUT-ARKTX = W_LIPS-ARKTX.
W_OUTPUT-LFIMG = W_LIPS-LFIMG.

* Moving delivery header data to final output


CLEAR W_LIKP.
READ TABLE T_LIKP INTO W_LIKP WITH KEY VBELN = W_LIPS-VBELN.
IF SY-SUBRC = 0.
W_OUTPUT-ERDAT = W_LIKP-ERDAT.
W_OUTPUT-BZIRK = W_LIKP-BZIRK.
W_OUTPUT-ROUTE = W_LIKP-ROUTE.
W_OUTPUT-KUNNR = W_LIKP-KUNNR.
W_OUTPUT-XABLN = W_LIKP-XABLN.
ENDIF.

* Moving Ship to party address information to final output


CLEAR W_KNA1.
READ TABLE T_KNA1 INTO W_KNA1 WITH KEY KUNNR = W_LIKP-KUNNR.
IF SY-SUBRC = 0.
W_OUTPUT-NAME1 = W_KNA1-NAME1.
W_OUTPUT-ORT01_T = W_KNA1-ORT01.
W_OUTPUT-PSTLZ = W_KNA1-PSTLZ.
W_OUTPUT-REGIO = W_KNA1-REGIO.
W_OUTPUT-TELF2 = W_KNA1-TELF2.
ENDIF.

APPEND W_OUTPUT TO T_OUTPUT.


CLEAR W_OUTPUT.
ENDLOOP.

ENDFORM. " SUB_POP_OUTPUT


*&---------------------------------------------------------------------*
*& Form SUB_DISP_DATA
*&---------------------------------------------------------------------*
* This routine is used the display delivery information
*----------------------------------------------------------------------*
FORM SUB_DISP_DATA .

LOOP AT T_OUTPUT INTO W_OUTPUT.


WRITE:/2 W_OUTPUT-VBELN,
20 W_OUTPUT-POSNR,
30 W_OUTPUT-MATNR,
40 W_OUTPUT-WERKS,
50 W_OUTPUT-ERDAT,
65 W_OUTPUT-BZIRK,
75 W_OUTPUT-ROUTE,
85 W_OUTPUT-NAME1,
105 W_OUTPUT-ORT01_F,
120 W_OUTPUT-ORT01_T,
130 W_OUTPUT-LFIMG.
ENDLOOP.

ENDFORM. " SUB_DISP_DATA

S-ar putea să vă placă și