*&---------------------------------------------------------------------*
*& Report ZSS_TEST_009
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zss_test_009.
TABLES:vbak,kna1,lips.
TYPES: BEGIN OF ty_vbak,
vbeln TYPE vbeln_va, "Sales document number
erdat TYPE erdat, "Creation date
vgbel TYPE vgbel, "Document number of the reference document
kunnr TYPE kunag, "Customer number1
END OF ty_vbak,
BEGIN OF ty_lips,
vbeln TYPE vbeln, "Delivery
vgbel TYPE vgbel, "Document number of the reference document
erzet TYPE erzet, "Name of the person who created the object
erdat TYPE erdat, "Entry time
END OF ty_lips,
BEGIN OF ty_kna1,
kunnr TYPE kunnr, "Customer Number
land1 TYPE land1, "Country key
name1 TYPE name1, "Name1
END OF ty_kna1.
DATA: it_vbak TYPE STANDARD TABLE OF ty_vbak INITIAL SIZE 0,
wa_vbak TYPE ty_vbak,
it_lips TYPE STANDARD TABLE OF ty_lips INITIAL SIZE 0,
wa_lips TYPE ty_lips,
it_kna1 TYPE STANDARD TABLE OF ty_kna1 INITIAL SIZE 0,
wa_kna1 TYPE ty_kna1,
lv_vbeln TYPE vbeln,
lv_kunnr TYPE kunnr.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln,
s_kunnr FOR vbak-kunnr.
SELECTION-SCREEN:END OF BLOCK b1.
INITIALIZATION.
CLEAR: wa_vbak,
wa_lips,
wa_kna1.
REFRESH: it_vbak,
it_lips,
it_kna1.
AT SELECTION-SCREEN.
IF s_vbeln IS NOT INITIAL.
SELECT SINGLE vbeln
FROM vbak
INTO lv_vbeln
WHERE vbeln IN s_vbeln.
IF sy-subrc NE 0.
MESSAGE:'Sales document number does not exist' TYPE'I'.
ENDIF.
ENDIF.
IF s_kunnr IS NOT INITIAL.
SELECT SINGLE kunnr
FROM vbak
INTO lv_kunnr
WHERE kunnr IN s_kunnr.
IF sy-subrc NE 0.
MESSAGE 'CUSTOMER NUMBER DOES NOT EXIST' TYPE 'I'.
ENDIF.
ENDIF.
START-OF-SELECTION.
SELECT vbeln
erdat
vgbel
kunnr
FROM vbak
INTO TABLE it_vbak
WHERE vbeln IN s_vbeln.
IF sy-subrc EQ 0.
SORT it_vbak BY vbeln.
ENDIF.
END-OF-SELECTION.
IF it_vbak IS NOT INITIAL.
LOOP AT it_vbak INTO wa_vbak.
WRITE: / wa_vbak-vbeln HOTSPOT ON,
wa_vbak-erdat,
wa_vbak-vgbel,
wa_vbak-kunnr HOTSPOT ON.
HIDE:wa_vbak-vbeln, wa_vbak-kunnr.
ENDLOOP.
ENDIF.
AT LINE-SELECTION.
DATA: fld TYPE char15,
val TYPE char15.
GET CURSOR FIELD fld VALUE val.
IF fld = 'WA_VBAK-VBELN'.
SELECT vbeln
vgbel
erzet
erdat
FROM lips
INTO TABLE it_lips
WHERE vgbel = wa_vbak-vbeln.
IF sy-subrc EQ 0.
SORT it_vbak BY vbeln.
ENDIF.
IF it_lips IS NOT INITIAL.
LOOP AT it_lips INTO wa_lips.
WRITE: / wa_lips-vbeln,
wa_lips-vgbel,
wa_lips-erzet,
wa_lips-erdat.
ENDLOOP.
ENDIF.
ELSEIF fld = 'WA_VBAK-KUNNR'.
SELECT kunnr
land1
name1
FROM kna1
INTO TABLE it_kna1
WHERE kunnr = wa_vbak-kunnr.
IF sy-subrc EQ 0.
SORT it_vbak BY kunnr.
ENDIF.
IF it_kna1 IS NOT INITIAL.
LOOP AT it_kna1 INTO wa_kna1.
WRITE: / wa_kna1-kunnr,
wa_kna1-land1,
wa_kna1-name1.
ENDLOOP.
ENDIF.
ENDIF.
No comments:
Post a Comment