Ich habe eigentlich was ähnliches vor. Bin dann aber zu der erwähnten einfacheren Lösung mit Auswahl der Zeile und Buttondruck gekommen.
Jedoch bekomme ich es nicht hin. Um grundlegend mit dem Eventmodell klarzukommen wollte ich ersteinmal die Behandlung des Clicks auf eine Tabellenzeile definieren.
Ich erkläre also im Viewcontroller des Views in dem das SALV_WD_TABLE als VCE eingebunden ist die Verwendung diesens und des zugehörigen Interfacecontrollers. In der Methode WDDOINIT rufe ich WD_COMP_CONTROLLER->alv_init( ). auf.
Meine alv_init instanziert das Objekt und deaktiviert das cell_action event, womit das on_click event aktiv sein dürfte.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
DATA: lv_scrollable_col_count
TYPE i
, lr_cmp_usage TYPE REF TO if_wd_component_usage,
lr_if_controller TYPE REF TO iwci_salv_wd_table,
lv_alv_id TYPE zmp_alv_id,
L_API_INTERFACECONTROLLER type ref to IF_WD_CONTROLLER,
lr_model type ref to cl_salv_wd_config_table.
* Objekt instanzieren
lr_cmp_usage = wd_this->wd_cpuse_SALV_FLIGHTS( ).
if lr_cmp_usage
->has_active_component( ) is initial. lr_cmp_usage->create_component( ).
* --- get reference to model
lr_if_controller = wd_this->wd_cpifc_salv_flights( ).
* get model and disable cell_action
lr_model = lr_if_controller->get_model( ).
lr_model->if_salv_wd_table_settings~set_cell_action_event_enabled(' ').
- GeSHi ©
Anschließend registriere ich auf eine neue Ereignis-Methode ON_CLICK das Event ON_CLICK vom Interfacecontroller der SALV_FLIGHTS Komponente. In dieser setze ich einen Breakpoint.
Wenn ich nun das Web Dynpro Programm ausführe und in der Tabelle eine Zelle anklicke passiert aber leider nichts.
Was müßte ich also machen um eine Zeile auswählen zu können und nach einem Klick auf einen Button mit den Daten aus dieser Zeile weiterarbeiten zu können?