Hallo zusammen,
ich habe eine interne Tabelle, deren Inhalt ich in einer ALV ( FUBA: REUSE_ALV_GRID_DISPLAY_LVC ) ausgeben möchte... soweit so gut. Allerdings kann der User die Daten anhand eines Button druckes bearbeiten. Also er drückt drauf, im hintergrund wird die tabelle bearbeitet fertig -- heißt also die ALV soll nicht editable sein!
Nun bearbeite ich meine daten schön schön ... nun möchte ich dann aber meine interne Tabelle anhand meiner Struktur per modify anpassen.. gesagt getan.. FEHLER! Gut nach ein bisschen hin und her überlegen, kam ich auf die Idee, dass der die interne tabelle selber nicht bearbeitet werden soll, wenn man sie in einer ALV ausgibt, lass ich mir ja eingehen. Dann folgendes gemacht:
Code: Alles auswählen.
FORM alv .
DATA: lt_fcat TYPE lvc_t_fcat,
ls_layout TYPE lvc_s_layo
.
DATA: lt_alv TYPE TABLE OF gty_alv.
PERFORM init_fcat CHANGING lt_fcat.
PERFORM init_layo CHANGING ls_layout.
lt_alv = gt_alv.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
*...weitere parameter
TABLES
t_outtab = lt_alv
Also ich habe eine lokale tabelle erstellt, welche genauso aufgebaut ist wie die gt_alv und auch deren Inhalt besitzt..
Nun probiere ich wieder meine Tabelle zu bearbeiten
Code: Alles auswählen.
*...
* viel vorheriger code der mit der eigentlichen modifikation nichts zu tun hat
ELSE.
COMMIT WORK.
READ TABLE gt_alv into gs_alv
WITH KEY aufnr = im_aufnr
vornr = im_vornr
.
SELECT SINGLE aufpl
FROM caufv
INTO lv_aufpl
WHERE aufnr = im_aufnr
.
SELECT SINGLE objnr
FROM afvc
INTO lv_objnr
WHERE aufpl = lv_aufpl
and VORNR = im_vornr
.
PERFORM sel_state USING lv_objnr.
MODIFY gt_alv from gs_alv.
ENDIF.
Bloß er wirft mir immer wieder den Fehler:
Es sollte eine Zeile der internen Tabelle "tab" geändert, gelöscht oder hinzugefügt werden. Zu der Tabelle existiert jedoch kein gültiger Cursor.
Außerdem steht dann da noch dass das vewenden von modify itab während eines loops nicht erlaubt ist.
Nun wie kann ich die interne Tabelle modifizieren .. ohne modify?