Code: Alles auswählen.
DATA:
it_data TYPE TABLE OF marc,
wa_data LIKE LINE OF it_data.
DATA:
zaehler TYPE i.
*Selektionsschirm
SELECTION-SCREEN BEGIN OF BLOCK selection WITH FRAME TITLE text-001.
PARAMETERS:
p_matnr LIKE marc-matnr OBLIGATORY,
p_werks LIKE marc-werks OBLIGATORY,
p_oitaxg LIKE marc-oitaxgrp OBLIGATORY.
SELECTION-SCREEN END OF BLOCK selection.
SELECTION-SCREEN BEGIN OF BLOCK b03 WITH FRAME TITLE text-002.
PARAMETERS:
p_test AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK b03.
START-OF-SELECTION.
SELECT * FROM marc INTO TABLE it_data
WHERE mmsta <> 'CE'
AND mmsta <> 'CP'
AND mmsta <> 'NP'
AND matnr = p_matnr
AND werks = p_werks
AND oitaxgrp = p_oitaxg.
LOOP AT it_data INTO wa_data.
*Alle Datensätze werden ausgegeben
IF p_test = 'X'.
WRITE: / wa_data-matnr, wa_data-werks, wa_data-oitaxgrp.
zaehler = zaehler + 1.
ELSE.
IF wa_data-matnr = p_matnr.
SELECT SINGLE * FROM marc INTO wa_data
WHERE matnr = p_matnr.
IF sy-subrc = 0.
WRITE: / wa_data-matnr, wa_data-oitaxgrp.
zaehler = zaehler + 1.
ENDIF.
wa_data-oitaxgrp = p_oitaxg.
UPDATE marc FROM wa_data.
IF sy-subrc = 0.
WRITE: / wa_data-matnr, wa_data-werks, wa_data-oitaxgrp.
zaehler = zaehler + 1.
ELSE.
WRITE: / 'Update konnte nicht durchgeführt werden!'.
ENDIF.
*Zusatz, um zu prüfen, ob noch weitere artikel mit
*den selben kriterien vorhanden sind
ELSE.
WRITE: / 'Material nicht definiert:', wa_data-matnr,
wa_data-werks, wa_data-oitaxgrp.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: / zaehler.
END-OF-SELECTION.