Mehrere Zelleditoren für eine Spalte definieren 
Wenn Sie für eine Zelle mehrere Zelleditoren verwenden wollen, zum Beispiel um alle interaktiven Elemente in der ersten Spalte anzuordnen, benutzen Sie die Zellvariante CL_SALV_WD_MULTI_CELL_EDITOR. Als Zelleditoren stehen Ihnen folgende Oberflächenelemente zur Verfügung:
Button
LinkToAction
LinkToURL
FileDownload
ToggleButton

Klassendiagramm für den Mehrfach-Zelleditor
Zellvariante mit mehreren Zelleditoren implementieren
Das folgende Beispiel zeigt, wie Sie in einer Spalte (ls_column) beispielhaft alle zur Verfügung stehenden Zelleditoren einfügen.
Deklarieren Sie folgende Variablen:
data:
lr_cv type ref to cl_salv_wd_multi_cell_editor,
lr_checkbox type ref to cl_salv_wd_uie_checkbox,
lr_button type ref to cl_salv_wd_uie_button,
lr_link_to_action type ref to cl_salv_wd_uie_link_to_action,
lr_link_to_url type ref to cl_salv_wd_uie_link_to_url,
lr_file_download type ref to cl_salv_wd_uie_file_download,
lr_toggle_button type ref to cl_salv_wd_uie_toggle_button.
Instanziieren die Zellvariante und fügen den Schlüssel hinzu, den Sie benötigen, um die Zellvariante der Spalte zuzuordnen:
create object lr_cv.
lr_cv->set_key( 'CV_MULTI' ).
Fügen Sie einen Button hinzu:
create object lr_button.
lr_button->set_text( 'myButton' ).
lr_button->set_image_source( '~Icon/Approve' ).
lr_cv->add_editor( lr_button ).
Fügen Sie einen LinkToURL hinzu:
create object lr_link_to_url.
lr_link_to_url->set_image_source( '~Icon/Wiki' ).
lr_link_to_url->set_text( 'SDN Wiki' ).
lr_link_to_url->set_reference( 'http://wiki.sdn.sap.com/wiki/display/WHP/Home' ).
lr_cv->add_editor( lr_link_to_url ).
Fügen Sie einen LinkToAction hinzu:
create object lr_link_to_action.
lr_link_to_action->set_text( 'Details' ).
lr_link_to_action->set_image_source( '~Icon/DetailedSettings' ).
lr_cv->add_editor( lr_link_to_action ).
Fügen Sie einen FileDownload hinzu:
create object lr_file_download exporting data_fieldname = 'FILE'.
lr_file_download->set_visible( cl_wd_uielement=>e_visible-visible ).
lr_file_download->set_enabled_fieldname( 'LOCKED' ).
lr_file_download->set_file_name( 'Data.txt' ).
lr_file_download->set_text( 'Download' ).
lr_file_download->set_image_source( '~Icon/File' ).
lr_file_download->set_mime_type( 'text/plain' ).
lr_file_download->set_behaviour( cl_wd_file_download=>e_behaviour-allow_save ).
lr_cv->add_editor( lr_file_download ).
Fügen Sie einen ToggleButton hinzu:
create object lr_toggle_button exporting checked_fieldname = 'LOCKED'.
lr_toggle_button->set_visible( cl_wd_uielement=>e_visible-visible ).
lr_toggle_button->set_image_source( '~Icon/Locked' ).
lr_toggle_button->set_checked_image_source( '~Icon/Unlocked' ).
lr_cv->add_editor( lr_toggle_button ).
Fügen Sie die Zellvariante der gewünschten Spalte hinzu:
ls_column-r_column->add_cell_variant( lr_cv ).
ls_column-r_column->set_selected_cell_variant( 'CV_MULTI' ).
Hinweis
Ereignisbehandlung
Um zu ermitteln, welches Oberflächenelement innerhalb dieser Spalte geklickt wurde, steht Ihnen der Parameter CELL_EDITOR zur Verfügung.
Weitere Informationen dazu finden Sie im System in der Dokumentation zu den Ereignissen ON_CELL_ACTION und ON_CLICK des INTERFACECONTROLLER SALV_WD_TABLE.
Die Spalte mit diesen Zelleditoren sieht dann so aus:

“One click action": Mehrere interaktive Oberflächenelemente in einer Zelle