Editable ALV-Events abfangen (Insert/ Append/ Delete/ ...)

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Editable ALV-Events abfangen (Insert/ Append/ Delete/ ...)

Beitrag von DeZone (ForumUser / 31 / 0 / 0 ) »
Huhu allerseits,

frohen Nikolaus nachträglich.

Kleine Frage:

- Wie fange die Standard-Editable-ALV Events (z.B. Delete Row ab?

Konkretes Beispiel:
- Ich habe einen editierbaren ALV, bei dem nur bestimmte Zeilen löschbar sind, wie kann ich das nun prüfen und ggf. unterbinden? In dem Event HANDLE_DATA_CHANGED habe ich es nicht geschafft :cry:

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von deDieter ( / / 0 / 3 ) »
Servus DeZone,
sollte aber mit dem event funktionieren:

Also einen Event-Handler schreiben und diesen dann wie folgt registrieren:

Code: Alles auswählen.

set handler go_event_receiver->handle_data_changed for go_grid.

call method go_grid->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_modified. 
und dann bie der methode die gelöschte zeilen auslesen und diese dann wieder dran hängen.

alternativ könntest du jedes löschen der zeilen unterbinden:

Code: Alles auswählen.

  
  data: lt_exclude type ui_functions.
  data ls_exclude type ui_func.

ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
  append ls_exclude to lt_exclude.
  call method g_grid->set_table_for_first_display
       exporting it_toolbar_excluding  = lt_exclude
und dann das löschen selber basteln ;)

oder du kannst eine ganze zeile auf nicht änderbar setzen... würde vermuten, daß die zeile dann nicht rausgelöscht wird. das codingbeispiel hab ich leider grad net zur hand - sorry.

Dir auch einen angenehmen arbeitstag!
gruß deDieter

Beitrag von Gast ( / / 0 / 3 ) »
Hossa DaDieter ,

hmmm, ich glaube so einfach ist es nicht (oder doch

:?: )
In der Methode hat die Out_Tabelle noch die gelöschte Zeile, soweit ok, ich weiß über mt_deleted_rows welche gelöscht werden soll.
Wie soll ich diese nun an die selbe Stelle wieder dranhängen, wenn sie noch in Tabelle existiert?
Was ich damit meine, ist, dass in der Methode die Outtab noch unangetastet ist und erst nach dem Event wird diese Zeile gelöscht.

Stimmt selber basteln könnt ich auch, ist aber ineffektiv, da muß es doch was geben, oder schon im vorherein definieren welche Zeilen löschbar sind und welche nicht

Arbeitstag? :lol: , der war gut. Ob Arbeitstag oder nicht, da gibt es keinen Unterschied (für mich), da ich immer arbeite :cry: *selbst-bemitleid-auf-schulter-klopf* :wink:

Beitrag von deDieter ( / / 0 / 3 ) »
hey mr workoholic,
kann das sein, daß man die mt_deleted_rows modifizieren kann? was passiert, wenn du dort die zeilen, die du nicht löschen willst einfach entfernst...
Kannst ja kurz übern debugger ausprobieren.

gruß deDieter

Beitrag von DeZone (ForumUser / 31 / 0 / 0 ) »
Hi DaDieter (ich bin es eher gewohnt Mr. Chippendale genannt zu werden :lol: ),

das habe ich auch schon probiert. Hat nichts gebracht.
Zudem habe ich auch eine Protokoll-Meldung mit allen möglichen verschieden Types (z.B. Error) probiert, aber selbst dies brachte nicht den erhofften Erfolg :evil:

Gruß
DeZone

Beitrag von DeZone (ForumUser / 31 / 0 / 0 ) »
HI!,

Ich bin ein wenig weiter gekommen.

Es gibt die Beiden Klassen-Attribute
- MC_LY_NO_DELETE_ROWS
- MC_LYSTYLE_NO_DELETE_ROWS
der Klasse CL_GUI_ALV_GRID

Ich setze diese auch an jede Zeile der Outtab an (per EDITABLE-Tabelle Feld Style).

Jedoch zeigt dies keine Wirkung!

Wisst Ihr woran es liegt, ich habe hierbei alle möglichen Kombinationen probiert, aber es tut nicht.

Zudem habe ich es mal mit dem Ereignis "Before_User_Command" probiert, aber dieses Ereignis zieht afaik nicht bei den Editable-Funktionen :cry: :cry:


Danke & Grüsse

Beitrag von OliTe (ForumUser / 21 / 0 / 0 ) »
Der Thread ist zwar schon älter, doch meine Frage passt hier gut rein.

Ich möchte per ALV-Grid die Daten editieren und natürlich auch Funktionen wie Zeilen löschen, einfügen, anhängen usw. anbieten. Ich habe ein data_changed-Event implementiert, doch reagiert dieses nicht, wenn ich z.B. "Zeile löschen" im Toolbar anklicke. Eigentlich wäre dies doch ein data_changed-Event oder?

Welches Event ist für einen Toolbar-Klick verantwortlich?

Gruß
Oliver

Seite 1 von 1

Vergleichbare Themen

4
Antw.
4373
Views
ALV-GRID delete button event abfangen
von fba9901 » 20.10.2014 17:54 • Verfasst in ABAP® Core
0
Antw.
1445
Views
8
Antw.
15757
Views
CL_SALV_TABLE editable
von jensschladitz » 22.05.2013 16:49 • Verfasst in ABAP® Core
2
Antw.
1874
Views
WebDynpro editable AVL table save changes
von shadow » 17.03.2014 15:19 • Verfasst in ABAP® für Anfänger
4
Antw.
2570
Views
ALV List - Nur manche Felder editable, nicht gleich Spalte
von LosPablos » 12.08.2005 14:15 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 10 Minuten von payten 13 / 10219
Eclipse - warum/wann verwendet ihr es [nicht]
vor 29 Minuten von ewx 23 / 1806
Dialog-Container mit Toolbar/Status
vor 14 Stunden von DeathAndPain gelöst 22 / 3195
Daten an Tabelle binden
vor 19 Stunden von Lukas Sanders 2 / 1063
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 631

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 10 Minuten von payten 13 / 10219
Eclipse - warum/wann verwendet ihr es [nicht]
vor 29 Minuten von ewx 23 / 1806
Dialog-Container mit Toolbar/Status
vor 14 Stunden von DeathAndPain gelöst 22 / 3195
Daten an Tabelle binden
vor 19 Stunden von Lukas Sanders 2 / 1063
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 631

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2624
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9212