Code: Alles auswählen.
ls_abw-evt_elternzeit_begin = ls_2001-begda.
MODIFY gt_abw INDEX lv_counter FROM ls_abw TRANSPORTING (ls_abw-evt_elternzeit_begin).
Code: Alles auswählen.
ls_abw-evt_elternzeit_begin = ls_2001-begda.
MODIFY gt_abw INDEX lv_counter FROM ls_abw TRANSPORTING ls_abw-evt_elternzeit_begin.
Danke für deine Antwort, aber, wie oben geschrieben, komt die Fehlermeldung:jocoder hat geschrieben: ↑10.01.2020 09:37In runden Klammern versucht das System, das Feld auszuwählen, dass in ls_abw-evt_elternzeit_begin steht.Code: Alles auswählen.
ls_abw-evt_elternzeit_begin = ls_2001-begda. MODIFY gt_abw INDEX lv_counter FROM ls_abw TRANSPORTING ls_abw-evt_elternzeit_begin.
Code: Alles auswählen.
LOOP AT gt_abw ASSIGNING FIELD-SYMBOL(<abw>).
..
<abw>-evt_elternzeit_begin = ls_2001-begda.
..
ENDLOOP.
Code: Alles auswählen.
READ TABLE gt_abw INDEX lv_counter REFERENCE INTO DATA(abw).
IF SY-SUBRC = 0.
abw->evt_elternzeit_begin = ls_abw-elternzeit_begin. "oder direkt = ls_2001-begda
ENDIF.
ls_abw ist falsch typisiert. Dies muss eine Struktur sein und keine interne Tabelle oder ein skalarer Wert.Danke für deine Antwort, aber, wie oben geschrieben, komt die Fehlermeldung:
Der angegebene Typ besitzt keine Struktur und daher auch keine Komponente mit Namen "LS_ABW-EVT_ELTERNZEIT_BEGIN". Woran kann das liegen?
Code: Alles auswählen.
TYPES: BEGIN OF ty_abw,
evt_muttersch_begin TYPE dats,
evt_muttersch_end TYPE dats,
evt_elternzeit_begin TYPE dats,
evt_elternzeit_end TYPE dats,
END OF ty_abw.
DATA: gt_abw TYPE TABLE OF ty_abw.
*......
DATA: ls_abw TYPE ty_abw.
SELECT * FROM pa2001 INTO ls_2001 WHERE pernr = pernr-pernr AND
begda >= pn-begda AND
begda <= gv_check_date AND
awart = '0510' AND
sprps = abap_false
ORDER BY begda.
IF sy-subrc = 0.
ls_abw-evt_elternzeit_begin = ls_2001-begda.
READ TABLE gt_abw INDEX lv_counter REFERENCE INTO DATA(abw).
IF sy-subrc = 0.
abw->evt_elternzeit_begin = ls_2001-begda.
ENDIF.
Übergibst du gt_abw als generisch typisierten Parameter wie in folgenden Codesnippet?Es kommt folgender Fehler:
"GT_ABW" hat einen generischen Typ, der nicht zur Deklaration verwendet werden kann.
Code: Alles auswählen.
TYPES: BEGIN OF _structure,
key(2),
value TYPE i,
END OF _structure.
START-OF-SELECTION.
DATA: structure TYPE _structure.
PERFORM generic_signature USING structure.
FORM generic_signature USING input.
WRITE: input-key, input-value.
ENDFORM.
Code: Alles auswählen.
FORM read_elternzeit_beginn CHANGING pt_abw LIKE gt_abw.
DATA: ls_abw TYPE ty_abw.
"...
SELECT * FROM pa2001 INTO ls_2001 WHERE pernr = pernr-pernr AND
begda >= pn-begda AND
begda <= gv_check_date AND
awart = '0510' AND
sprps = abap_false
ORDER BY begda.
"???
ENDSELECT.
"???
IF sy-subrc = 0.
READ TABLE pt_abw INDEX lv_counter REFERENCE INTO DATA(abw).
IF sy-subrc = 0.
abw->evt_elternzeit_begin = ls_2001-begda.
ENDIF.
ENDIF.
ENDFORM.