Code: Alles auswählen.
START-OF-SELECTION.
SELECTION-SCREEN BEGIN OF BLOCK anzeige WITH FRAME TITLE text-001.
SELECT-OPTIONS so_matnr FOR wa_martxt-matnr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK anzeige.
END-OF-SELECTION.
Code: Alles auswählen.
PROGRAM ztest.
TABLES: mara.
"interne Tabelle mit in MARA vorhandenen Materialnummern
TYPES: BEGIN OF t_mara,
matnr TYPE matnr,
lvorm TYPE lvoma,
END OF t_mara.
DATA: gt_mara TYPE HASHED TABLE OF t_mara WITH UNIQUE KEY matnr,
wa_mara LIKE LINE OF gt_mara.
SELECTION-SCREEN BEGIN OF BLOCK anzeige WITH FRAME TITLE text-001.
SELECT-OPTIONS so_matnr FOR mara-matnr NO INTERVALS.
SELECTION-SCREEN END OF BLOCK anzeige.
START-OF-SELECTION.
IF so_matnr IS INITIAL.
MESSAGE 'bitte Selektion einschränken!' TYPE 'I' DISPLAY LIKE 'E'.
EXIT.
ENDIF.
"Materialsätze lesen
SELECT matnr lvorm FROM mara APPENDING TABLE gt_mara
WHERE matnr IN so_matnr.
"Ausgeben der Sätze, welche nicht in MARA drin sind
LOOP AT so_matnr.
READ TABLE gt_mara INTO wa_mara
WITH TABLE KEY matnr = so_matnr-low.
IF sy-subrc = 0 AND wa_mara-lvorm = 'X'.
WRITE: so_matnr-low, ' ist zum Löschen vorgemerkt'.
NEW-LINE.
ELSEIF sy-subrc <> 0.
WRITE: so_matnr-low, ' ist in MARA nicht vorhanden'.
NEW-LINE.
ENDIF.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor Alexander D. für den Beitrag:
Beginner014
Code: Alles auswählen.
LOOP AT so_matnr.
READ TABLE gt_mara INTO wa_mara
WITH TABLE KEY matnr = so_matnr-LOW.
IF sy-subrc = 0.
READ TABLE gt_makt INTO wa_makt
WITH TABLE KEY matnr = so_matnr-LOW.
IF sy-subrc <> 0.
WRITE: so_matnr-LOW, 'Text missing'.
NEW-LINE.
ENDIF.
ELSEIF sy-subrc <> 0.
WRITE: so_matnr-LOW, 'Basic Data missing.'.
NEW-LINE.
ENDIF.
ENDLOOP.
Code: Alles auswählen.
AND spras = so_spras
Code: Alles auswählen.
* lesen aus der MAKT mit Anmeldesprache
SELECT * FROM MAKT WHERE matnr = so_matnr-LOW AND spras = sy-langu.
* lesen aus der MAKT mit einem Sprachschlüssel (PARAMETER)
SELECT * FROM MAKT WHERE matnr = so_matnr-LOW AND spras = p_spras.
* lesen aus der MAKT mit einem Sprachschlüssel (SELECT-OPTIONS)
SELECT * FROM MAKT WHERE matnr = so_matnr-LOW AND spras = so_spras-LOW.
* lesen aus der MAKT mit Mehrfachselektion (SELECT-OPTIONS)
SELECT * FROM MAKT WHERE matnr = so_matnr-LOW AND spras IN so_spras.