Code: Alles auswählen.
REPORT.
DATA gt_data TYPE STANDARD TABLE OF t005t.
DATA gr_grid TYPE REF TO cl_gui_alv_grid.
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
class-METHODS:
handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed sender.
ENDCLASS. "lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_data_changed.
FIELD-SYMBOLS <data> type t005t.
data ls_stable type LVC_S_STBL.
ls_stable = 'XX'.
if 1 = 1.
read table gt_data index 1 ASSIGNING <data>.
if sy-subrc = 0.
<data>-landx = 'XXXX'.
endif.
sender->refresh_table_display( is_stable = ls_stable ).
endif.
ENDMETHOD. "handle_data_changed
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
START-OF-SELECTION.
PERFORM get_data.
PERFORM display.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data.
SELECT * FROM t005t
INTO TABLE gt_data UP TO 100 ROWS
WHERE spras = sy-langu.
ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form display
*&---------------------------------------------------------------------*
FORM display.
DATA lt_events TYPE slis_t_event.
DATA lt_fcat TYPE slis_t_fieldcat_alv.
DATA lt_fcatlvc TYPE lvc_t_fcat.
FIELD-SYMBOLS <fcat> TYPE slis_fieldcat_alv.
FIELD-SYMBOLS <fcatlvc> TYPE LVC_s_FCAT.
PERFORM set_events CHANGING lt_events.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'T005T'
CHANGING
ct_fieldcat = lt_fcatlvc
EXCEPTIONS
OTHERS = 3.
* CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
* EXPORTING
* i_structure_name = 'T005T'
* i_client_never_display = 'X'
* CHANGING
* ct_fieldcat = lt_fcat
* EXCEPTIONS
* OTHERS = 3.
LOOP AT lt_fcatlvc ASSIGNING <fcatlvc>.
CASE <fcatlvc>-fieldname.
WHEN 'LANDX'.
<fcatlvc>-edit = 'X'.
ENDCASE.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-cprog
* i_structure_name = 'T005T'
it_events = lt_events
* it_fieldcat_lvc = lt_fcat
it_fieldcat_lvc = lt_fcatlvc
TABLES
t_outtab = gt_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "display
*&---------------------------------------------------------------------*
*& Form set_events
*&---------------------------------------------------------------------*
FORM set_events CHANGING ct_events TYPE slis_t_event.
FIELD-SYMBOLS: <ls_event> TYPE slis_alv_event.
DATA: l_event TYPE lvc_fname.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 4
IMPORTING
et_events = ct_events
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc = 0.
READ TABLE ct_events ASSIGNING <ls_event>
WITH KEY name = 'CALLER_EXIT'.
IF sy-subrc EQ 0.
CONCATENATE 'ALV_EVENT_' <ls_event>-name
INTO <ls_event>-form.
ENDIF.
ENDIF.
ENDFORM. "set_events
*&---------------------------------------------------------------------*
*& Form alv_event_caller_exit
*&---------------------------------------------------------------------*
FORM alv_event_caller_exit USING cs_data TYPE slis_data_caller_exit..
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = gr_grid.
* gr_grid->set_ready_for_input( 1 ).
gr_grid->register_edit_event( cl_gui_alv_grid=>mc_evt_modified ).
SET HANDLER lcl_event_receiver=>handle_data_changed FOR gr_grid.
ENDFORM. "alv_event_caller_exit
Kannst ja mal versuchen!ralf.wenzel hat geschrieben:Und Enter einen Funktionscode im Status zuweisen?
Wenn du da nichts dran änderst, wird es wohl auch so bleiben.ralf.wenzel hat geschrieben:Aber der Funktionscode ist und bleibt SPACE.
Code: Alles auswählen.
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
FUNCTIONCODE = 'OK'.
ralf.wenzel hat geschrieben:Ich hab auch schon versucht, ENTER einen solchen Funktionscode zu geben, das fruchtet aber nicht.