Hast du es mal mit CL_GUI_ALV_GRID->get_current_cell versucht?Margolwes hat geschrieben: Ich habe versucht, mit cl_gui_alv_grid->get_cell_data den Zellwert zur Partnernummer auszulesen, die Methode ist allerdings nicht public, sodass ich einen Fehler erhalte. Wie lesen ich daher einen noch nicht gespeicherten Wert in einem ALV aus?
Ach ja, Stimmt! Hatte das Problem auch schon mal.Margolwes hat geschrieben:das ergibt einen Dump, weil die Methode ja innerhalb des Eventhandlers zur F4-Hilfe aufgerufen wird und ich mich somit ja noch in der Datenbearbeitung befinde.
Die liefert eigentlich nur die aktuelle ZellenPOSITION und nicht den INHALT. Oder hab ich da bislang was verwechselt?km216 hat geschrieben:Hast du es mal mit CL_GUI_ALV_GRID->get_current_cell versucht?
1000 Dank! Das war's, klappt reibungslos!a-dead-trousers hat geschrieben:Zu könntest versuchen den Event CL_GUI_ALV_GRID=>MC_EVT_MODIFIED mit zu CL_GUI_ALV_GRID=>REGISTER_EDIT_EVENT registrieren.
Dann sollte bei jeder Zellenänderung diese direkt in die ursprüngliche Datentabelle zurückgeschrieben werden.
Du musst nur aufpassen, dass du wirklich mit einer globalen Tabelle (in Programm/Klasse definiert) arbeitest und nicht mit eine Lokalen (in Form-Routine/Methode definiert)
Code: Alles auswählen.
form handle_f4_2002 using lv_row_no type lvc_s_roid.
data: ls_gpzuord type t_gpzuord
, ls_shlp type shlp_descr
, ls_interface type line of shlp_descr-interface
, ls_selopt type line of shlp_descr-selopt
, lt_return type table of ddshretval
.
read table gt_gpzuord into ls_gpzuord index lv_row_no-row_id.
call function 'F4IF_GET_SHLP_DESCR'
exporting
shlpname = 'ZBUPA_ROLE'
shlptype = 'SH'
importing
shlp = ls_shlp.
loop at ls_shlp-interface into ls_interface where shlpfield eq 'PARTNER'.
move: 'X' to ls_interface-f4field
, 'GT_GPZUORD' to ls_interface-valtabname
, ls_interface-shlpfield to ls_interface-valfield
.
modify ls_shlp-interface from ls_interface.
endloop.
move: 'ZBUPA_ROLE' to ls_selopt-shlpname
, 'PARTNER' to ls_selopt-shlpfield
, 'I' to ls_selopt-sign
, 'EQ' to ls_selopt-option
, ls_gpzuord-partner to ls_selopt-low
.
append ls_selopt to ls_shlp-selopt.
call function 'F4IF_START_VALUE_REQUEST'
exporting
shlp = ls_shlp
* DISPONLY = ' '
* MAXRECORDS = 500
* MULTISEL = ' '
* CUCOL = SY-CUCOL
* CUROW = SY-CUROW
* IMPORTING
* RC =
tables
return_values = lt_return
.
endform. " handle_f4_2002