Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
*&---------------------------------------------------------------------*
*& GLOBAL DECLARATIONS
*&---------------------------------------------------------------------*
DATA: G_KUNNR TYPE KUNNR."Cust No
*&---------------------------------------------------------------------*
*& SELECTION SCREEN DECLARATIONS
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_KUNNR FOR G_KUNNR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
*&---------------------------------------------------------------------*
*& INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.
CLEAR: W_LIKP,
W_KNA1,
W_LIPS,
W_MAKT,
W_T001W,
W_FINAL_HEADER,
W_FINAL_ITEM.
REFRESH: T_LIKP,
T_KNA1,
T_LIPS,
T_MAKT,
T_T001W,
T_FINAL_HEADER,
T_FINAL_ITEM.
*&---------------------------------------------------------------------*
*& SELECTION SCREEN VALIDATIONS
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
*VALIDATION FOR DELIVERY NUMBER
PERFORM VALIDATE_KUNNR.
*&---------------------------------------------------------------------*
*& SELECTION SCREEN VALIDATIONS
*&---------------------------------------------------------------------*
*TOP OF PAGE REPORT
*TOP-OF-PAGE.
* PERFORM TOP_OF_PAGE.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION EVENT
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*FETCH CUSTOMER MASTER DATA
PERFORM GET_KNA1_DATA.
*FETCH DELIVERY HEADER DATA
PERFORM GET_LIKP_DATA.
*FETCH DELIVERY ITEM DATA
PERFORM GET_LIPS_DATA.
*&---------------------------------------------------------------------*
*&
Form VALIDATE_VBELN
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM VALIDATE_KUNNR .
DATA : L_KUNNR TYPE KUNNR."Cust No
SELECT SINGLE KUNNR FROM KNA1 INTO L_KUNNR WHERE KUNNR IN S_KUNNR.
IF SY-SUBRC <> 0.
MESSAGE E012(ZMSGCLS) WITH S_KUNNR-LOW S_KUNNR-HIGH.
ENDIF.
ENDFORM.
" VALIDATE_KUNNR
*&---------------------------------------------------------------------*
*&
Form GET_KNA1_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_KNA1_DATA .
SELECT KUNNR
NAME1
ORT01
PSTLZ
REGIO
TELF2
FROM KNA1 INTO TABLE T_KNA1
WHERE KUNNR IN S_KUNNR.
ENDFORM.
" GET_KNA1_DATA
**&---------------------------------------------------------------------*
**&
Form GET_LIKP_DATA
**&---------------------------------------------------------------------*
**
text
**----------------------------------------------------------------------*
** --> p1
text
** <-- p2
text
**----------------------------------------------------------------------*
FORM GET_LIKP_DATA .
SELECT KUNNR
VBELN
ERDAT
ROUTE
BZIRK
XABLN
FROM LIKP INTO CORRESPONDING FIELDS OF TABLE T_LIKP
FOR ALL ENTRIES IN T_KNA1
WHERE KUNNR = T_KNA1-KUNNR.
ENDFORM.
" GET_LIKP_DATA
*&---------------------------------------------------------------------*
*&
Form GET_LIPS_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*]
FORM GET_LIPS_DATA .
SELECT VBELN
POSNR
MATNR
WERKS
LFIMG
ARKTX
FROM LIPS INTO TABLE T_LIPS
FOR ALL ENTRIES IN T_LIKP
WHERE VBELN = T_LIKP-VBELN.
ENDFORM.
" GET_LIPS_DATA
*&---------------------------------------------------------------------*
*&
Form GET_T001W_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_T001W_DATA .
DATA LT_LIPS TYPE TABLE OF TY_LIPS.
LT_LIPS = T_LIPS.
SORT LT_LIPS BY WERKS.
DELETE ADJACENT DUPLICATES FROM LT_LIPS COMPARING WERKS.
SELECT WERKS
NAME1
ORT01
FROM T001W INTO TABLE T_T001W
FOR ALL ENTRIES IN T_LIPS
WHERE WERKS = T_LIPS-WERKS.
ENDFORM.
" GET_T001W_DATA
*&---------------------------------------------------------------------*
*&
Form GET_MAKT_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_MAKT_DATA .
DATA LT_LIPS TYPE TABLE OF TY_LIPS.
LT_LIPS = T_LIPS.
SORT LT_LIPS BY MATNR.
DELETE ADJACENT DUPLICATES FROM LT_LIPS COMPARING MATNR.
SELECT MATNR
MAKTX FROM MAKT
INTO TABLE T_MAKT
FOR ALL ENTRIES IN T_LIPS
WHERE MATNR = T_LIPS-MATNR AND SPRAS = 'EN'.
ENDFORM.
" GET_MAKT_DATA
*&---------------------------------------------------------------------*
*&
Form POPULATE_FINAL_HEADER_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM POPULATE_FINAL_HEADER_DATA .
LOOP AT T_KNA1 INTO W_KNA1.
W_FINAL_HEADER-KUNNR = W_KNA1-KUNNR.
W_FINAL_HEADER-NAME1_C = W_KNA1-NAME1_C.
W_FINAL_HEADER-ORT01_C = W_KNA1-ORT01_C.
W_FINAL_HEADER-PZTLZ = W_KNA1-PZTLZ.
W_FINAL_HEADER-REGIO = W_KNA1-REGIO.
W_FINAL_HEADER-TELF2 = W_KNA1-TELF2.
READ TABLE T_LIKP INTO W_LIKP WITH KEY KUNNR = W_KNA1-KUNNR.
IF SY-SUBRC = 0.
APPEND W_FINAL_HEADER TO T_FINAL_HEADER.
ENDIF.
SORT T_FINAL_HEADER BY KUNNR.
CLEAR: W_FINAL_HEADER,
W_KNA1.
ENDLOOP.
ENDFORM.
" POPULATE_FINAL_HEADER_DATA
*&---------------------------------------------------------------------*
*&
Form POPULATE_FINAL_ITEM_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM POPULATE_FINAL_ITEM_DATA .
LOOP AT T_LIKP INTO W_LIKP.
W_FINAL_ITEM-KUNNR = W_LIKP-KUNNR.
W_FINAL_ITEM-VBELN = W_LIKP-VBELN.
W_FINAL_ITEM-ERDAT = W_LIKP-ERDAT.
W_FINAL_ITEM-ROUTE = W_LIKP-ROUTE.
W_FINAL_ITEM-BZIRK = W_LIKP-BZIRK.
LOOP AT T_LIPS INTO W_LIPS WHERE VBELN = W_LIKP-VBELN.
W_FINAL_ITEM-POSNR = W_LIPS-POSNR.
W_FINAL_ITEM-MATNR = W_LIPS-MATNR.
W_FINAL_ITEM-WERKS = W_LIPS-WERKS.
W_FINAL_ITEM-LFIMG = W_LIPS-LFIMG.
W_FINAL_ITEM-ARKTX = W_LIPS-ARKTX .
READ TABLE T_MAKT INTO W_MAKT WITH KEY MATNR = W_LIPS-MATNR.
W_FINAL_ITEM-MAKTX = W_MAKT-MAKTX.
READ TABLE T_T001W INTO W_T001W WITH KEY WERKS = W_LIPS-WERKS.
W_FINAL_ITEM-NAME1_P = W_T001W-NAME1_P.
W_FINAL_ITEM-ORT01_P = W_T001W-ORT01_P.
APPEND W_FINAL_ITEM TO T_FINAL_ITEM.
SORT T_FINAL_ITEM BY KUNNR.
ENDLOOP.
CLEAR: W_LIKP,
W_LIPS,
W_MAKT,
W_T001W.
CLEAR: W_FINAL_ITEM.
ENDLOOP.
ENDFORM.
" POPULATE_FINAL_ITEM_DATA
*&---------------------------------------------------------------------*
*&
Form DISPLAY_REPORT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DISPLAY_REPORT .
IF T_FINAL_ITEM IS NOT INITIAL.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
T_OUTTAB_ITEM
= T_FINAL_ITEM
EXCEPTIONS
PROGRAM_ERROR
= 1
OTHERS
= 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ELSE.
MESSAGE I013(ZMSGCLS) DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
*
*
*
ENDFORM.
" DISPLAY_REPORT
*&---------------------------------------------------------------------*
*&
Form PROVIDE_FCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0391 text
*
-->P_0392 text
*
-->P_0393 text
*----------------------------------------------------------------------*
FORM PROVIDE_FCAT USING COL
FNAME
SELTEXT
TABLE
SUM.
W_FCAT-COL_POS = COL.
W_FCAT-FIELDNAME = FNAME.
W_FCAT-SELTEXT_M = SELTEXT.
W_FCAT-TABNAME = TABLE.
W_FCAT-DO_SUM = SUM.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
ENDFORM.
" PROVIDE_FCAT
*&---------------------------------------------------------------------*
*&
Form KEYINFO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM KEYINFO .
W_KEYINFO-HEADER01 = 'KUNNR'.
W_KEYINFO-ITEM01 = 'KUNNR'.
ENDFORM.
" KEYINFO
*&---------------------------------------------------------------------*
*&
Form SORT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM SORT .
W_SORT-FIELDNAME = 'KUNNR'.
W_SORT-SUBTOT = 'X'.
APPEND W_SORT TO T_SORT.
ENDFORM.
" SORT