*&---------------------------------------------------------------------*
*& Report ZSS_TEST_009
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zss_test_009.
TABLES:mara,marc,mard.
TYPES: BEGIN OF ty_mara,
matnr TYPE matnr, "Material Number
ersda TYPE ersda, "Created on
ernam TYPE ernam, "Name of Person who Created the Object
END OF ty_mara,
BEGIN OF ty_marc,
matnr TYPE matnr, "Material Number
werks TYPE werks_d, "Plant
pstat TYPE pstat_d, "Maintenance status
END OF ty_marc,
BEGIN OF ty_mard,
matnr TYPE matnr, "Material Number
lgort TYPE lgort_d, "Storage Location
END OF ty_mard.
DATA: it_mara TYPE STANDARD TABLE OF ty_mara INITIAL SIZE 0,
wa_mara TYPE ty_mara,
it_marc TYPE STANDARD TABLE OF ty_marc INITIAL SIZE 0,
wa_marc TYPE ty_marc,
it_mard TYPE STANDARD TABLE OF ty_mard INITIAL SIZE 0,
wa_mard TYPE ty_mard,
lv_matnr TYPE matnr.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_matnr FOR mara-matnr.
SELECTION-SCREEN: END OF BLOCK b1.
INITIALIZATION.
CLEAR: wa_mara,
wa_marc,
wa_mard.
REFRESH: it_mara,
it_marc,
it_mard.
AT SELECTION-SCREEN.
IF s_matnr IS NOT INITIAL.
SELECT SINGLE matnr
FROM mara
INTO lv_matnr
WHERE matnr IN s_matnr.
IF sy-subrc NE 0.
MESSAGE: 'Material Number does not exist' TYPE'e'.
ENDIF.
ENDIF.
START-OF-SELECTION.
SELECT matnr
ersda
ernam
FROM mara
INTO TABLE it_mara
WHERE matnr IN s_matnr.
IF sy-subrc EQ 0.
SORT it_mara BY matnr.
ENDIF.
SELECT matnr
werks
pstat
FROM marc
INTO TABLE it_marc
WHERE matnr IN s_matnr.
IF sy-subrc EQ 0.
SORT it_marc BY matnr.
ENDIF.
END-OF-SELECTION.
IF it_mara IS NOT INITIAL.
LOOP AT it_mara INTO wa_mara.
WRITE: / wa_mara-matnr,
wa_mara-ersda,
wa_mara-ernam.
HIDE wa_mara-matnr.
ENDLOOP.
ENDIF.
DATA: fld(30),
val(30).
AT LINE-SELECTION.
* data: v_matnr TYPE matnr.
IF sy-lsind = 1.
GET CURSOR FIELD fld VALUE val .
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* input = val
* IMPORTING
* OUTPUT = v_matnr
* .
IF fld = 'WA_MARA-MATNR'.
SELECT matnr
werks
pstat
FROM marc
INTO TABLE it_marc
* WHERE matnr = v_matnr.
WHERE matnr = wa_mara-matnr.
LOOP AT it_marc INTO wa_marc.
WRITE: / wa_marc-matnr,
wa_marc-werks,
wa_marc-pstat.
HIDE wa_marc-matnr.
CLEAR: wa_marc.
ENDLOOP.
ENDIF.
ELSEIF sy-lsind = 2.
SELECT matnr
lgort
FROM mard
INTO TABLE it_mard
WHERE matnr = wa_marc-matnr.
LOOP AT it_mard INTO wa_mard.
WRITE: / wa_mard-matnr,
wa_mard-lgort.
HIDE wa_mard-matnr.
CLEAR: wa_mard.
ENDLOOP.
ENDIF.
No comments:
Post a Comment