Das hat er IMHO eh schon gelöst (Punkt 1)Tron hat geschrieben:Eine Sychronisation zwischen Dynpro PAI/PBO und den Events von z.B. ALV-Grid kann man mit der Methode CL_GUI_CFW=>SET_NEW_OK_CODE herstellen.
Code: Alles auswählen.
METHOD init_alv.
[...]
CALL METHOD super->init_alv
EXPORTING
io_container = io_container.
me->go_alv->set_table_for_first_display(
EXPORTING
* i_buffer_active =
* i_bypassing_buffer =
* i_consistency_check =
* i_structure_name =
* is_variant =
* i_save =
* i_default = 'X'
is_layout = ls_layout
* is_print =
* it_special_groups =
it_toolbar_excluding = me->gt_functions_excl
* it_hyperlink =
* it_alv_graphics =
* it_except_qinfo =
* ir_salv_adapter =
CHANGING
it_outtab = me->gt_outtab
it_fieldcatalog = me->gt_fcat
* it_sort =
* it_filter =
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4
).
ls_f4-fieldname = 'TAXKM'.
ls_f4-register = 'X'.
ls_f4-getbefore = space.
ls_f4-chngeafter = space.
APPEND ls_f4 TO lt_f4.
me->go_alv->register_f4_for_fields( it_f4 = lt_f4 ).
me->go_alv->register_edit_event(
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified
EXCEPTIONS
error = 1
OTHERS = 2
).
CALL METHOD me->go_alv->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
SET HANDLER me->on_change_finished FOR me->go_alv.
Code: Alles auswählen.
METHOD init_alv.
CREATE OBJECT me->go_alv
EXPORTING
i_parent = io_container.
* Vor lauter Verzweiflung habe ich dann auch noch Enter registriert hat aber auf die TAB-Problematik keine Auswirkung gehabt...
me->go_alv->register_edit_event(
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1
OTHERS = 2
).
SET HANDLER me->on_modified FOR me->go_alv. "data_changed
SET HANDLER me->on_f4 FOR me->go_alv.
ENDMETHOD.
Das beschrieben Verhalten kann man auch im Testreport: BCALV_GRID_EDIT nachvollziehen. Auf dem SelScreen die erste Checkbox (Update bei Zellenwechsel) markieren! Dann mal das letzte Feld in der letzten Zeile ändern. In das letzte Feld Währung einen ungültigen Wert eingeben. Wird das Feld mit TAB verlassen kommt keine Fehlermeldung, bei ENTER nach der Eingabe gibt es eine FehlermeldungHerr Müller hat geschrieben:Vielleicht hilft das Coding weiter. Ich sehe wahrscheinlich den Wald vor lauter Bäumen nicht..
Hallo Jan Martin,Herr Müller hat geschrieben:... Allerdings frage ich mich dann, warum die SAP da wieder ein Event "modified" bereitstellt, wenn man nicht auf ALLE Änderungen reagieren kann