fehlerhaftes Event nach Refresh ALV-Table

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

fehlerhaftes Event nach Refresh ALV-Table

Postby Ensar4984 » Sat May 05, 2012 11:19 am

Hallo zusammen,

ich stelle mittels eines CL_SALV_TABLE-Objekts eine Tabelle auf einem Dynpro dar. Die erste Spalte der Tabelle beinhaltet entweder
-einen grünen Haken (positives Ereignis) oder
- ein rotes X (negatives Ereignis).
Durch ein Doppelklick auf die jeweilige Zeile erscheint ein Pop-Up mit weiteren Informationen. Dafür registriere ich einen Doppelclick-Handler und übergebe die entsprechende Tabelle an das Handler-Objekt, damit die versteckten Detailinformationen ausgelesen werden können.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  CREATE OBJECT lif_handler TYPE  z_event_handler
  2.     EXPORTING
  3.       it_events                  = lt_events
  4.  
  5.   lo_events = gr_log_alv_table->get_event( ).
  6.  
  7.   SET HANDLER lif_handler->on_double_click FOR lo_events.
  8.  
GeSHi ©

Am Anfang werden alle Ereignise angezeigt. Der Nutzer kann aber mittels des entsprechenden Buttons nur die positiven oder nur die negativen Ereignisse visualisieren. (im Hintergrund werden aus der Tabelle die entsprechenden Ereignisse rausgefiltert und mittels der CL_SALV_TABLE Methoden SET_DATA( ) neu gesetzt und dann mittels REFRESH( ) die Anzeige aktualisiert.)
Das funktioniert auch alles wunderbar.

Das Problem ist aber das Doppelklick-Event in der gefilterten Ansicht. Im Handler befindet sich ja noch die ungefilterte Tabelle und wenn der Nutzer auf eine Zeile der gefilterten Tabelle klickt, werden die detailierten Informationen der ungefilterten Tabelle gezeigt und nicht wie vom Nutzer erwartet der gefilterten.

Ich seh zwei verschiedene Lösungswege:
a) den alten Handler unregistrieren und dann das neue Handler-Objekt zu registrieren
b) die Tabelle im Handlerobjekt aktualisieren.

Bei Lösungsweg a) hab ich es nicht hinbekommen, das alte Handlerobjekt zu unregistrieren.
Bei Lösungsweg b) komm ich nicht an das Handlerobjekt ran.

Habt ihr eine Idee oder einen weiteren Lösungsvorschlag wie ich das Problem angehen kann.

Viele Grüße
trublu
Ensar4984
.
.
 
Posts: 4
Joined: Tue Aug 02, 2011 9:10 pm

Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 10 guests