alv grid und event handle_data_changed

Getting started ... Alles für einen gelungenen Start.
18 Beiträge • Seite 1 von 2 (current) Nächste
18 Beiträge Seite 1 von 2 (current) Nächste

alv grid und event handle_data_changed

Beitrag von hadde85 (ForumUser / 17 / 0 / 0 ) »
hallo leute,

hab eine kleines problem mit meinem alv grid.
ich habe mir eine eigen klasse event_receiver gebastelt.
in der methode check double entries werden die daten des alv grid auf redundanz geteste. Bei mir sind das drei felder die er überprüfen muss, damid der satz eindeutig ist ( matnr, werks und warenempfänger). wenn ich nun das alv teste bekomm ich bei der überprüfung eine Fehlermeldung, nur wenn ich das alv erneut überprüfe, ohne den falschen datensatz zu ändern wird er akzeptiert und ich bekomme keine meldung!
hab mir die test programme bcalv_edit_03 und 04 schon angeschaud.
in den beiden programmen wird nach erneutem drücken der constructor für CL_ALV_CHANGED_DATA_PROTOCOL aufgerufen. bei mir dagegen springt er gleich wieder aus der dynpro ablauflogik raus....
also hat er garnicht die möglichkeit die Überpfünd durchzuführen.
Hat vielleicht einer ne idee wie und wo ich meinen event handler richtig instanziere!? :)

hoffe ihr versteht mein problem...

mfg hadde

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


Re: alv grid und event handle_data_changed

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Hallo zusammen,
gabs hierzu eine Lösung? Habe das gleiche Problem.
Gruß
Mrs. Hilflos
peace and long life

Re: alv grid und event handle_data_changed

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
hi!

Ist schon ein etwas älterer Post...
Hier wurden nicht viele Infos mitgegeben, deswegen nehme ich an, dass man nicht helfen konnte. Ich kann hier auch nur raten.

Wenn das Event Handling "plötzlich und unerwartet" abgebrochen wird, könnte folgendes passiert sein: (Aus eigener Erfahrung)
  • Im Event Handler ist eine Exception aufgetreten
  • Im Coding wurde eine Stelle mit LEAVE SCREEN oder ähnlichem erreicht. Dann springt ABAP automatisch zum zugehörigen CALL SCREEN und bricht alles andere ab. Meist dann wenn beim Dynpro bei der PAI Verarbeitung ein LEAVE SCREEN ausgelöst wird.
  • Der falsche Event Handler wurde registriert. (Bitter, aber wahr :P )
  • Innerhalb des Event Handlers für F4, darf das ALV Grid NICHT auf Änderungen (CHECK_CHANGED_DATA) abgefragt werden, weil es ansonsten zu einer Endlosschleife kommt. Dann sollte es aber auch zu eine Exception kommen. (Siehe Variable M_DISABLE_SAVE in CL_GUI_ALV_GRID)
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: alv grid und event handle_data_changed

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Hallo,
bin etwas verwirrt. Ich habe das obige Problem anders verstanden, wenn ich mir deine Antwort durchlese. Deshalb mal kurz meine Problembeschreibung:
wenn ich im eingabebereiten ALV etwas ändere und Enter drücke, findet ein Absprung in handle_data_changed statt und meine Prüfungen werden durchlaufen. Diese gebe ich dann über die Protokollklasse aus. Wenn ich jetzt nichts verändere (Fehler besteht also weiterhin) und dann z.B. nochmals Enter oder den Prüfenbutton drücke, findet kein Absprung mehr in handle_data_changed statt. ich habe jetzt ja auch nix mehr geändert. Meine Prüfungen sollen aber trotzdem durchlaufen werden...
Hast du eine Idee?
Gruß
Mrs. Hilflos
peace and long life

Re: alv grid und event handle_data_changed

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Hat der User zwischen der Anzeige des Prüfprotokolls und dem erneuten Enter etwas geändert?
Wenn nicht, warum sollte dann das DATA_CHANGED durchlaufen werden?
Der Benutzer muss schon zuerst die "Fehler" korrigieren, ehe weitergearbeitet werden kann. Solange nicht zumindest ein Feld verändert wurde ist eine weitere Überprüfung sinnlos, da der Fehler nicht auf irgendeine magische Weise verschwunden ist.
Oder verstehe ich da etwas falsch?

hmm...
Meinst du vielleicht, dass dann das ALV bei einem erneuten Enter einfach "denkt" es wäre alles in Ordnung und die Verarbeitung abschließt?
In dem Fall würde ich mir zur Sicherheit eine Prüfvariable merken, die eine Weiterverarbeitung außerhalb des ALVs verhindert, solange deine Prüfungen des DATA_CHANGED nicht korrekt sind.
Eventuell würde ich die Prüfungen sogar in eine Unterroutine auslagern, sodass man diese nicht nur über den Event sondern auch von einer anderen Stelle aus aufrufen kann um vor einer Weiterverarbeitung die Daten ebenfalls nochmals auf Gültigkeit zu überprüfen.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: alv grid und event handle_data_changed

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Hallo adt,
genau so habe ich es gemeint. Wenn der Fehler nicht korrigiert wird (könnte ja mal sein) und dann erneut geprüft wird, kommt kein Fehlerprotokoll mehr und ein Sichern wäre dadurch möglich. Ich versuche es mal mit einer Zusatzvariablen. Danke.
Gruß
Mrs. Hilflos
peace and long life

Re: alv grid und event handle_data_changed

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Mrs. Hilflos hat geschrieben:Wenn ich jetzt nichts verändere (Fehler besteht also weiterhin) und dann z.B. nochmals Enter oder den Prüfenbutton drücke, findet kein Absprung mehr in handle_data_changed statt. ich habe jetzt ja auch nix mehr geändert. Meine Prüfungen sollen aber trotzdem durchlaufen werden...
Wenn im 1. Prüfdurchlauf ein Fehler festgestellt wurde und der Fehler richtig an den ALV komuniziert wurde, sollte doch das Fehlerprotokoll aufpopen und fehlerhaften Zellen rot markiert sein.
Der ALV läßt dann eine weiterverarbeitung erst nach Fehlerbehebung zu.

Ist dies bei dir der Fall? Alos bekommst du das PopUp und sind die Zellen rot markiert?
Gruß Hendrik

Re: alv grid und event handle_data_changed

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Ich habe eine unsichtbare Spalte eingefügt mit Namen Zeile, da ich Meldungen nicht immer einer bestimmten Spalte zuordnen kann. Wenn ich auf die Fehlermeldung klicke, lande ich zwar in der richtigen Zeile, die Spalte ist aber nicht rot markiert.
Wenn ich stattdessen aber auf eine sichtbare Spalte verweise, dann ist diese rot markiert. Dann kommt auch immer wieder wie gewünscht die Fehlermeldung.
Woran liegt das?
peace and long life

Re: alv grid und event handle_data_changed

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Mrs. Hilflos hat geschrieben:Woran liegt das?
Keine Ahnung wie SAP den ALV an dieser Stelle ausgelegt hat. Wahrscheinlich wird intern nur geprüft ob die angezeigten Daten alle fehlerfrei sind (also gegen keine Zelle eine Fehlermeldung vorliegt) und wenn das nicht der Fall ist wird das Fehlerprotokoll als erledigt angesehen. Der ALV lässt ja auch das Ausblenden von Spalten, die einen Eingabefehler beinhalten, nicht zu. Zu erst muss der Fehler behoben werden.

Du mußt also das ErrorProtokoll anders aufrufen/füllen, damit das von dir gewünschte Verhalten funktioniert.
Gruß Hendrik

Re: alv grid und event handle_data_changed

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Komisch. Bei einer Prüfung klappt das nicht :-(
Wobei ich die Nachrichten immer gleich ins Protokoll aufnehme. Seltsam...
peace and long life

Re: alv grid und event handle_data_changed

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Stimmt nicht ganz. Jetzt gehts generell wieder nur beim ersten Mal. Das Feld ist aber weiterhin rot umrahmt. :x
peace and long life

Re: alv grid und event handle_data_changed

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Ich glaube ich weiß woran es liegt. Kann es sein, dass mir ein refresh_table_display in der Methode handle_data_changed das Protokoll zerstört???
peace and long life

Re: alv grid und event handle_data_changed

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Mrs. Hilflos hat geschrieben:Ich glaube ich weiß woran es liegt. Kann es sein, dass mir ein refresh_table_display in der Methode handle_data_changed das Protokoll zerstört???
ja....wieso brauchst du den refresh?
Die geänderten Daten vom FrontEnd sind noch nicht in der itab im BackEnd eingetragen. Wieso also den Refresh durchführen?
Gruß Hendrik

Re: alv grid und event handle_data_changed

Beitrag von Mrs. Hilflos (Specialist / 225 / 0 / 0 ) »
Während handle_data_changed will ich ein paar Werte ableiten und diese sollen dann auch im ALV angezeigt werden. Wenn ich keinen Refresh mache, sehe ich sie nicht. Oder muss ich die Ableitung zu einem anderen Zeitpunkt machen?
peace and long life

Re: alv grid und event handle_data_changed

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
Mrs. Hilflos hat geschrieben:Oder muss ich die Ableitung zu einem anderen Zeitpunkt machen?
Beides ist möglich:
Wenn du die Daten in ON_DATA_CHANGE ableiten willst, so must du diese über ER_DATA_CHANGED->MODIFY_CELL an den ALV übergeben. (Kann sehr umständlich sein).
Oder aber im Event ON_DATA_CHANGED_FINISHED (geänderte Daten sind von Frontend ans Backend übertragen) die Daten ableiten und dann ein Refresh machen.
Gruß Hendrik

Vergleichbare Themen

0
Antw.
2291
Views
DATA-CHANGED-PROTOCOL vom ALV-Grid manipulieren
von Frog » 27.05.2008 21:31 • Verfasst in ABAP Objects®
5
Antw.
4645
Views
Handle Double Click for ALV Grid
von PeterPaletti » 15.06.2018 08:40 • Verfasst in ABAP Objects®
1
Antw.
10155
Views
Getting the displayed data from an ALV Grid.
von Meurant » 22.11.2005 03:55 • Verfasst in Development Related
1
Antw.
2129
Views
Key Event im ALV Grid
von Blutiger Anfänger » 30.11.2004 09:03 • Verfasst in ABAP Objects®
2
Antw.
2743
Views
Daten ändern mit dem ALV-Grid: Event-Problem
von Timo7 » 02.11.2006 10:45 • Verfasst in ABAP® Core

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 11 Stunden von Bright4.5 1 / 246
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1883
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8487