Code: Alles auswählen.
SELECT-OPTIONS MATNR FOR S022-MATNR.
SELECT-OPTIONS ARBPL FOR S022-ARBPL.
START-OF-SELECTION.
*--------------------------------------------------------------------*
*DBtab lesen und itab01 füllen über Workarea*
*--------------------------------------------------------------------*
SELECT * FROM S022
INTO CORRESPONDING FIELDS OF TABLE itab01
where matnr IN matnr
and arbpl IN arbpl.
Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
christof
Code: Alles auswählen.
Report ZR_TEST.
*--------------------------------------------------------------------*
*Tabellenarbeitsbereich deklarieren*
*--------------------------------------------------------------------*
DATA: wa_S022 TYPE S022,
wa_makt TYPE MAKT.
*--------------------------------------------------------------------*
*Felder deklarieren*
*--------------------------------------------------------------------*
DATA: zeilen_itab01 TYPE i.
*--------------------------------------------------------------------*
*Datentypen für Zeilen deklarieren*
*--------------------------------------------------------------------*
TYPES: BEGIN OF zeile01_typ,
ARBPL TYPE S022-ARBPL,
MATNR TYPE S022-MATNR,
AUFNR TYPE S022-AUFNR,
SPTAG TYPE S022-SPTAG,
SPRAS TYPE MAKT-SPRAS,
MAKTX TYPE MAKT-MAKTX,
END OF zeile01_typ.
*--------------------------------------------------------------------*
*Datentypen für interne Tabellen deklarieren*
*--------------------------------------------------------------------*
TYPES itab01_typ TYPE STANDARD TABLE OF zeile01_typ.
*--------------------------------------------------------------------*
*Interne Tabellen deklarieren*
*--------------------------------------------------------------------*
DATA itab01 TYPE itab01_typ.
*--------------------------------------------------------------------*
*Workareas für interen Tabellen deklarieren*
*--------------------------------------------------------------------*
DATA: wa_itab01 TYPE zeile01_typ.
*--------------------------------------------------------------------*
*Selektionsbild gesalten*
*--------------------------------------------------------------------*
SELECT-OPTIONS ARBPL FOR wa_S022-ARBPL.
PARAMETERS SPRAS TYPE MAKT-SPRAS.
START-OF-SELECTION.
START-OF-SELECTION.
*--------------------------------------------------------------------*
*DBtab lesen und itab01 füllen über Workarea*
*--------------------------------------------------------------------*
SELECT * FROM S022
INTO CORRESPONDING FIELDS OF TABLE itab01
WHERE arbpl IN arbpl.
SELECT * FROM MAKT
INTO CORRESPONDING FIELDS OF TABLE itab01
WHERE MATNR = WA_itab01-MATNR.
END-OF-SELECTION.
*--------------------------------------------------------------------*
*ITAB01 ausgeben in Liste*
*--------------------------------------------------------------------*
WRITE: / 'sy-tabix, itab01-MATNR, itab01-AUFNR'.
LOOP AT itab01 INTO wa_itab01.
WRITE: / sy-tabix,
wa_itab01-ARBPL,
wa_itab01-MATNR,
wa_itab01-MAKTX,
wa_itab01-AUFNR,
wa_itab01-SPTAG,
wa_itab01-MAKTX.
ENDLOOP.
Code: Alles auswählen.
SELECT S022~ARBPL S022~MATNR S022~AUFNR S022~SPTAG MAKT~SPRAS MAKT~MAKTX
FROM S022 INNER JOIN MAKT
ON S022~MATNR EQ MAKT~MATNR
INTO TABLE itab01
WHERE S022~arbpl IN arbpl
AND MAKT~SPRAS EQ sy-langu.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
christof
Code: Alles auswählen.
START-OF-SELECTION.
*--------------------------------------------------------------------*
*DBtab lesen und itab01 füllen über Workarea*
*--------------------------------------------------------------------*
SELECT * FROM S022
INTO CORRESPONDING FIELDS OF TABLE itab01
WHERE arbpl IN arbpl.
SELECT S022~ARBPL S022~MATNR S022~AUFNR S022~OBJNR MAKT~SPRAS MAKT~MAKTX
FROM S022 INNER JOIN MAKT
ON S022~MATNR EQ MAKT~MATNR
INTO TABLE itab01
WHERE S022~arbpl IN arbpl
AND MAKT~SPRAS EQ sy-langu.
SELECT S022~ARBPL S022~MATNR S022~AUFNR S022~OBJNR JEST~OBJNR JEST~STAT
FROM S022 INNER JOIN JEST
ON S022~OBJNR EQ JEST~OBJNR
INTO TABLE itab01
WHERE S022~arbpl IN arbpl.
*Aufträge ausgeben die den Vorgangstatus STAT = I0002 haben
SELECT SINGLE *
FROM jest
INTO jest
WHERE objnr = itab01-objnr
AND stat = 'I0002'. "Freigegbene Aufträge
END-OF-SELECTION.
Hast du dein Programm mal Schritt für Schritt im Debugger durchlaufen und vor/nach dem Select geschaute was in itba01 steht?christof hat geschrieben:Ich habe sie auf dieselbe weise verknüpft, nun zieht es mir den Materialtext nicht mehr in die Liste. Dazu möchte ich
das in der Liste nur die freigegebenen Vorgänge ausgegeben werden, das heisst nur die, die STAT = I0002 besitzen. Aber dies funktioniert auch nicht richtig.
Code: Alles auswählen.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE itab01
FROM s022
JOIN makt
ON MAKT~MATNR EQ S022~MATNR
AND makt~SPRAS EQ sy-langu
JOIN JEST
ON JEST~OBJNR EQ SO22~OBJNR
AND jest~stat = 'I0002'. "Freigegbene Aufträge
WHERE arbpl IN arbpl.
Code: Alles auswählen.
SELECT * FROM S022
INTO CORRESPONDING FIELDS OF TABLE itab01
WHERE arbpl IN arbpl.
SELECT S022~ARBPL S022~MATNR S022~AUFNR S022~OBJNR MAKT~SPRAS MAKT~MAKTX JEST~STAT
FROM S022
INNER JOIN JEST
ON S022~OBJNR EQ JEST~OBJNR
INNER JOIN MAKT
ON S022~MATNR EQ MAKT~MATNR
INTO TABLE itab01
WHERE S022~arbpl IN arbpl
AND MAKT~SPRAS EQ sy-langu.