Code: Alles auswählen.
REPORT zr_workflow_avor.
DATA : o_cc TYPE REF TO cl_gui_custom_container .
DATA : o_sc TYPE REF TO cl_gui_splitter_container .
DATA : o_part1 TYPE REF TO cl_gui_container
, o_part2 TYPE REF TO cl_gui_container
, o_part3 TYPE REF TO cl_gui_container
.
DATA : alv_grid1 TYPE REF TO cl_gui_alv_grid
, alv_grid2 TYPE REF TO cl_gui_alv_grid
, alv_grid3 TYPE REF TO cl_gui_alv_grid
.
*ALV1 - Liefertermin abklären
TYPES: BEGIN OF ty_sop
, vbeln TYPE zworkflow-vbeln
, vgbel TYPE zworkflow-vgbel
" , kunnr type zworkflow-kunnr
, zaufst TYPE zworkflow-zaufst
, zbeme TYPE zworkflow-zbeme
, END OF ty_sop.
DATA: i_modified TYPE STANDARD TABLE OF ty_sop, "For getting modified rows
i_selected_rows TYPE lvc_t_row,"Selected Rows
w_selected_rows TYPE lvc_s_row,
w_modified TYPE ty_sop,
wa TYPE ty_sop.
DATA: wt_fieldcat1 TYPE lvc_t_fcat
, wt_fieldcat2 TYPE lvc_t_fcat
, wt_fieldcat3 TYPE lvc_t_fcat
.
DATA : dd TYPE REF TO cl_dd_document.
DATA ok_code_0100 TYPE sy-ucomm.
DATA lv_answer TYPE c.
DATA: t_sop TYPE STANDARD TABLE OF ty_sop.
" , t_sopx TYPE STANDARD TABLE OF ty_sop
" .
START-OF-SELECTION .
CALL SCREEN 0100.
*&———————————————————————*
*& Module STATUS_0100 OUTPUT
*&———————————————————————*
* text
*———————————————————————-*
MODULE status_0100 OUTPUT.
SET PF-STATUS '0100'.
SET TITLEBAR '0100'.
PERFORM create_objects.
PERFORM spli_main_cont.
PERFORM prepare_fieldcat1 CHANGING wt_fieldcat1.
PERFORM disp_alv1 .
PERFORM prepare_fieldcat2 CHANGING wt_fieldcat2.
PERFORM disp_alv2 .
PERFORM prepare_fieldcat3 CHANGING wt_fieldcat3.
PERFORM disp_alv3 .
ENDMODULE. " STATUS_0100 OUTPUT
*&———————————————————————*
*& Form CREATE_OBJECTS
*&———————————————————————*
* text
*———————————————————————-*
* -> p1 text
* <– p2 text
*———————————————————————-*
FORM create_objects .
CREATE OBJECT o_cc
EXPORTING
container_name = 'MAIN_CONT'.
CREATE OBJECT dd
* EXPORTING
* STYLE =
* BACKGROUND_COLOR =
* BDS_STYLESHEET =
* NO_MARGINS =
.
ENDFORM. " CREATE_OBJECTS
*&———————————————————————*
*& Form SPLI_MAIN_CONT
*&———————————————————————*
* text
*———————————————————————-*
* –> p1 text
* <– p2 text
*———————————————————————-*
FORM spli_main_cont .
CREATE OBJECT o_sc
EXPORTING
parent = o_cc
rows = 3
columns = 1.
CALL METHOD o_sc->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = o_part1.
CALL METHOD o_sc->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = o_part2.
CALL METHOD o_sc->get_container
EXPORTING
row = 3
column = 1
RECEIVING
container = o_part3.
ENDFORM. " SPLI_MAIN_CONT
*&---------------------------------------------------------------------*
*& Form prepare_fieldcat1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--PT_FIELDCAT1 text
*----------------------------------------------------------------------*
FORM prepare_fieldcat1 CHANGING pt_fieldcat1 TYPE lvc_t_fcat.
DATA : lx_fcat TYPE lvc_s_fcat.
CLEAR lx_fcat.
lx_fcat-fieldname = 'VBELN'.
" lx_fcat-ref_field = text-200.
" lx_fcat-ref_table = text-200.
lx_fcat-coltext = text-200.
lx_fcat-seltext = 'Beleg'.
APPEND lx_fcat TO pt_fieldcat1.
CLEAR lx_fcat.
lx_fcat-fieldname = 'VGBEL'.
" lx_fcat-ref_field = text-200.
" lx_fcat-ref_table = text-200.
lx_fcat-coltext = text-203.
lx_fcat-seltext = 'Beleg'.
APPEND lx_fcat TO pt_fieldcat1.
CLEAR lx_fcat.
lx_fcat-fieldname = 'ZAUFST'.
" lx_fcat-ref_field = TEXT-201.
" lx_fcat-ref_table = TEXT-201.
lx_fcat-coltext = text-201.
lx_fcat-seltext = 'Status'.
APPEND lx_fcat TO pt_fieldcat1.
CLEAR lx_fcat.
lx_fcat-fieldname = 'ZBEME'.
" lx_fcat-ref_field = TEXT-201.
" lx_fcat-ref_table = TEXT-201.
lx_fcat-coltext = text-202.
lx_fcat-seltext = 'Bemerkungen'.
lx_fcat-edit = 'X'.
APPEND lx_fcat TO pt_fieldcat1.
ENDFORM. "INIT_FIELDCAT
*&---------------------------------------------------------------------*
*& Form prepare_fieldcat2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--PT_FIELDCAT2 text
*----------------------------------------------------------------------*
FORM prepare_fieldcat2 CHANGING pt_fieldcat2 TYPE lvc_t_fcat.
DATA : lx_fcat TYPE lvc_s_fcat.
ENDFORM. "INIT_FIELDCAT
*&---------------------------------------------------------------------*
*& Form prepare_fieldcat3
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--PT_FIELDCAT3 text
*----------------------------------------------------------------------*
FORM prepare_fieldcat3 CHANGING pt_fieldcat3 TYPE lvc_t_fcat.
DATA : lx_fcat TYPE lvc_s_fcat.
ENDFORM. "INIT_FIELDCAT
*&———————————————————————*
*& Form DISP_ALV1
*&———————————————————————*
* text
*———————————————————————-*
* –> p1 text
* <– p2 text
*———————————————————————-*
FORM disp_alv1 .
CREATE OBJECT alv_grid1
EXPORTING
i_parent = o_part1.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE t_sop
FROM zworkflow
WHERE zworkflow~zaufst = 'AVOR'.
CALL METHOD alv_grid1->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
CALL METHOD alv_grid1->set_table_for_first_display
EXPORTING
i_structure_name = 't_sop'
i_save = 'A'
i_default = 'X'
CHANGING
it_fieldcatalog = wt_fieldcat1
it_outtab = t_sop.
CALL METHOD alv_grid1->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
"IF sy-subrc <> 0.
" MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
" WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
"ENDIF.
ENDFORM . "DISP_ALV1
*&———————————————————————*
*& Form DISP_ALV2
*&———————————————————————*
* text
*———————————————————————-*
* –> p1 text
* <– p2 text
*———————————————————————-*
FORM disp_alv2 .
ENDFORM. " DISP_ALV2
*&---------------------------------------------------------------------*
*& Form DISP_ALV3
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM disp_alv3 .
ENDFORM . "DISP_ALV1
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE ok_code_0100.
WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Sicherheitsabfrage'(501)
text_question = 'Achtung: Geänderte Daten werden verloren gehen!'(502)
text_button_1 = 'Verlassen'(503)
text_button_2 = 'Abbrechen'(504)
default_button = '2'
display_cancel_button = ''
IMPORTING
answer = lv_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
CASE lv_answer.
WHEN '1'.
LEAVE TO SCREEN 0.
ENDCASE.
FIELD-SYMBOLS: <sop> TYPE ty_sop
, <sopx> TYPE ty_sop
.
WHEN 'SAVE' OR '&DATA_SAVE'.
CALL METHOD alv_grid1->get_selected_rows
IMPORTING
et_index_rows = i_selected_rows.
LOOP AT i_selected_rows INTO w_selected_rows.
READ TABLE t_sop INTO wa INDEX w_selected_rows-index.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING wa TO w_modified.
APPEND w_modified TO i_modified.
ENDIF.
ENDLOOP.
" MODIFY zworkflow FROM TABLE i_modified.
CALL METHOD alv_grid1->refresh_table_display.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
Code: Alles auswählen.
MODIFY zworkflow FROM TABLE i_modified.
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report YUSERMENU *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT YUSERMENU .
* Tabellen der Varianten
* ltdx
* Ltdxd
* Ltdxs
TABLES: yuserprog,trdirt.
INCLUDE <icon>.
DATA it_data TYPE TABLE OF yuserprog WITH HEADER LINE.
DATA lv_layperm(1) VALUE space.
DATA dyname TYPE d020s-prog VALUE sy-repid.
DATA dynumb TYPE d020s-dnum VALUE '0100'.
* Grid Parameter
DATA: ok_code LIKE sy-ucomm,
g_container TYPE scrfname VALUE 'BCALV_CONTAINER',
grid1 TYPE REF TO cl_gui_alv_grid,
g_custom_container TYPE REF TO cl_gui_custom_container,
is_variant TYPE disvariant.
*--- Field catalog table
DATA gt_fieldcat TYPE lvc_t_fcat WITH HEADER LINE.
*--- Layout structure
DATA gs_layout TYPE lvc_s_layo .
* LT_EXCLUDE => Tabelle zum Ausschliessen von Funktionen innerhalb
* der Toolbar des ALV-Grid
DATA: lt_exclude TYPE ui_functions,
ls_exclude TYPE ui_func.
*---------------------------------------------------------------------*
* MAIN *
*---------------------------------------------------------------------*
INITIALIZATION.
*---------------------------------------------------------------------*
* CLASS lcl_event_handler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION .
PUBLIC SECTION .
METHODS:
*--To add new functional buttons to the ALV toolbar
handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive ,
*--To implement user commands
handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm .
*--To be triggered before user commands
*handle_before_user_command
*FOR EVENT before_user_command OF cl_gui_alv_grid
*IMPORTING e_ucomm.
*--Double-click control
*handle_double_click
*FOR EVENT double_click OF cl_gui_alv_grid
*IMPORTING e_row e_column es_row_no.
PRIVATE SECTION.
ENDCLASS. "lcl_event_handler DEFINITION
*---------------------------------------------------------------------*
* CLASS lcl_event_handler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION .
*--Handle Toolbar
METHOD handle_toolbar.
PERFORM handle_toolbar USING e_object e_interactive .
ENDMETHOD . "handle_toolbar
*--Handle User Command
METHOD handle_user_command .
PERFORM handle_user_command USING e_ucomm .
ENDMETHOD. "handle_user_command
*--Handle Before User Command JG
* METHOD handle_before_user_command .
* PERFORM handle_before_user_command USING e_ucomm .
* ENDMETHOD . "handle_before_user_command
ENDCLASS. "lcl_event_handler IMPLEMENTATION
DATA gr_event_handler TYPE REF TO lcl_event_handler .
* Eingabe und Auswertung ---------------------------------------------*
START-OF-SELECTION.
SELECT * FROM yuserprog APPENDING TABLE it_data
WHERE benutzer = sy-uname.
CALL SCREEN 100.
EXIT.
*&---------------------------------------------------------------------*
*& Module PBO OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pbo OUTPUT.
IF g_custom_container IS INITIAL.
CREATE OBJECT g_custom_container
EXPORTING container_name = g_container.
CREATE OBJECT grid1
EXPORTING i_parent = g_custom_container.
*--Creating an instance for the event handler
CREATE OBJECT gr_event_handler .
*----Preparing field catalog.
PERFORM prepare_field_catalog TABLES gt_fieldcat[] .
*----Preparing layout structure
PERFORM prepare_layout CHANGING gs_layout .
*----Preparing Disable Toolbar Buttons
PERFORM change_buttons .
is_variant-report = dyname.
*'X': global saving only
*'U': user-specific saving only
*'A': corresponds to 'X' and 'U'
*SPACE: no saving
* Prüfe auf Berechtigung BENUTZERPFLEGE SU01
* dann ist Layout-Anpassung erlaubt
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = 'SU01'
EXCEPTIONS
ok = 1
not_ok = 2
OTHERS = 3.
IF sy-subrc = 1.
lv_layperm = 'A'.
ENDIF.
CALL METHOD grid1->set_table_for_first_display
EXPORTING
is_variant = is_variant
i_save = lv_layperm
* i_save = ' '
is_layout = gs_layout
it_toolbar_excluding = lt_exclude
CHANGING
it_outtab = it_data[]
it_fieldcatalog = gt_fieldcat[].
*--Registering handler methods to handle ALV Grid events JG
SET HANDLER gr_event_handler->handle_toolbar FOR grid1.
SET HANDLER gr_event_handler->handle_user_command FOR grid1.
* Die Toolbar des Grids muss noch auf interactive
* geschaltet werden. Dadurch werden die
* definierten Buttons angezeigt und die
* oben im PERFORM change_buttons ausgeschalteten
* Buttons heraus genommen werden
CALL METHOD grid1->set_toolbar_interactive.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Der GRID1 wird noch refreshed
CALL METHOD grid1->refresh_table_display.
ENDIF.
SET PF-STATUS 'MAIN100'.
SET TITLEBAR 'AUSW' WITH text-001.
ENDMODULE. " PBO OUTPUT
*&---------------------------------------------------------------------*
*& Module PAI INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pai INPUT.
* to react on oi_custom_events:
CALL METHOD cl_gui_cfw=>dispatch.
CASE ok_code.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN OTHERS.
* do nothing
ENDCASE.
CLEAR ok_code.
ENDMODULE. " PAI INPUT
*&--------------------------------------------------------------------*
*& Form prepare_field_catalog
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->PT_FIELDCATtext
*---------------------------------------------------------------------*
FORM prepare_field_catalog TABLES pt_fieldcat TYPE lvc_t_fcat .
DATA ls_fcat TYPE lvc_s_fcat .
* DATA lv_depth TYPE i.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'YUSERPROG'
CHANGING
ct_fieldcat = pt_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
* DELETE pt_fieldcat WHERE
* fieldname EQ 'BENUTZER'.
LOOP AT pt_fieldcat INTO ls_fcat .
ls_fcat-col_pos = sy-tabix.
CASE ls_fcat-fieldname.
WHEN 'PROGNAME' .
ls_fcat-coltext = 'Name des Reports'.
ls_fcat-key = space.
ls_fcat-emphasize = space.
WHEN 'TEXT' .
ls_fcat-coltext = 'Beschreibung'.
ENDCASE.
MODIFY pt_fieldcat FROM ls_fcat .
ENDLOOP.
ENDFORM . "prepare_field_catalog
*&--------------------------------------------------------------------*
*& Form prepare_layout
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->PS_LAYOUT text
*---------------------------------------------------------------------*
FORM prepare_layout CHANGING ps_layout TYPE lvc_s_layo.
ps_layout-zebra = 'X' .
ps_layout-cwidth_opt ='X'.
ps_layout-numc_total = ' '.
ps_layout-no_merging = 'X'.
ps_layout-no_rowmark = ' '.
ps_layout-sel_mode = 'A'.
ps_layout-no_toolbar = ' '.
* ps_layout-grid_title = 'Flights' .
* ps_layout-smalltitle = 'X' .
ENDFORM. "prepare_layout
*&--------------------------------------------------------------------*
*& Form handle_toolbar
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->I_OBJECT text
*---------------------------------------------------------------------*
FORM handle_toolbar USING i_object TYPE REF TO cl_alv_event_toolbar_set
e_interactive .
DATA: ls_toolbar TYPE stb_button.
* Paltzhalter / Seperator
CLEAR ls_toolbar.
MOVE 3 TO ls_toolbar-butn_type.
APPEND ls_toolbar TO i_object->mt_toolbar.
* Button MARKIEREN
CLEAR ls_toolbar.
MOVE 'MARK' TO ls_toolbar-function. "#EC NOTEXT
MOVE icon_execute_object TO ls_toolbar-icon.
MOVE 'Programm ausführen'(201) TO ls_toolbar-quickinfo.
MOVE ' Programm ausführen'(201) TO ls_toolbar-text.
MOVE ' ' TO ls_toolbar-disabled. "#EC NOTEXT
APPEND ls_toolbar TO i_object->mt_toolbar.
ENDFORM . "handle_toolbar
*&--------------------------------------------------------------------*
*& Form Change_buttons
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM change_buttons .
* Kein Symbol für Drucken / Graphik / Info
ls_exclude = cl_gui_alv_grid=>mc_fc_print_back.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_graph.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_info.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_subtot.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_sum.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_mb_view.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_detail.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_find.
APPEND ls_exclude TO lt_exclude.
ENDFORM. "Change_buttons
*&--------------------------------------------------------------------*
*& Form handle_user_command
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->I_UCOMM text
*---------------------------------------------------------------------*
FORM handle_user_command USING i_ucomm TYPE syucomm .
DATA lt_selected_rows TYPE lvc_t_roid .
DATA ls_selected_row TYPE lvc_s_roid .
CASE i_ucomm .
WHEN 'MARK' .
CALL METHOD grid1->get_selected_rows
IMPORTING
et_row_no = lt_selected_rows.
* War was selektiert ?
READ TABLE lt_selected_rows INTO ls_selected_row INDEX 1 .
IF sy-subrc NE 0 .
MESSAGE s000(su) WITH 'Bitte eine Zeile selektieren !'(205).
ELSE.
LOOP AT lt_selected_rows INTO ls_selected_row.
IF ls_selected_row-row_id NE 0.
READ TABLE it_data INDEX ls_selected_row-row_id.
PERFORM run_report USING it_data-programm.
EXIT.
ENDIF.
ENDLOOP.
* Falls die Tabelle yuserprog von hier aus gepflegt wird (Sonderfall)
REFRESH it_data.
SELECT * FROM yuserprog APPENDING TABLE it_data
WHERE benutzer = sy-uname.
CALL METHOD grid1->refresh_table_display
* EXPORTING
* IS_STABLE =
* I_SOFT_REFRESH =
EXCEPTIONS
finished = 1
OTHERS = 2 .
ENDIF .
ENDCASE .
ENDFORM. "handle_user_command
*&--------------------------------------------------------------------*
*& Form Run_report
*&--------------------------------------------------------------------*
* Starten eines Reports typ 1 via CALL TRANSCTION
*---------------------------------------------------------------------*
FORM run_report USING repo TYPE rs38m-programm.
DATA: bdcdata TYPE TABLE OF bdcdata.
DATA: itab TYPE TABLE OF bdcmsgcoll.
DATA: program LIKE sy-repid,
wa_bdcdata TYPE bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPMS38M'.
wa_bdcdata-dynpro = '0101'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_CURSOR'.
wa_bdcdata-fval = 'RS38M-PROGRAMM'.
APPEND wa_bdcdata TO bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_OKCODE'.
wa_bdcdata-fval = '=STRT'.
APPEND wa_bdcdata TO bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'RS38M-PROGRAMM'.
wa_bdcdata-fval = repo.
APPEND wa_bdcdata TO bdcdata.
CALL TRANSACTION 'SA38' USING bdcdata MODE 'E'
MESSAGES INTO itab.
ENDFORM. "Run_report
Meinst du, die vom Benutzer geänderten Daten am Grid werden im LOOP nicht gefunden, oder wird der LOOP bzw. der Abschnitt "WHEN 'SAVE' OR '&SAVE_DATA'" wird gar nicht durchlaufen?christof hat geschrieben:Mein Problem besteht einfach, das die Daten irgendwo nicht übergeben werden und somit den Loop nicht anspringt.
Debuggen half bisher auch nichts, ich habe also irgendwo einen Bock drin und weiss nicht wo.
Code: Alles auswählen.
CALL METHOD alv_grid1->get_selected_rows
IMPORTING
et_index_rows = i_selected_rows
CHECK_CHANGED_DATAchristof hat geschrieben:Aus meiner Sicht werden hier nach Save_Data keine Daten übergeben, für mich unerklärlichCode: Alles auswählen.
CALL METHOD alv_grid1->get_selected_rows IMPORTING et_index_rows = i_selected_rows
Im Coding im ersten Post macht er eh alles richtig und liest per Index der GET_SELECTED_ROWS aus der Datentabelle. Nur sind vermutlich die aktuellen Daten wegen der "asynchronen" Arbeitsweise des ALV-Grid dort noch nicht angekommen. Deshalb auch mein (inzwischen dritter) Hinweis doch bitte CHECK_CHANGED_DATA aufzurufen bzw. auszuprobieren und zu prüfen ob das den Fehler behebt.black_adept hat geschrieben:Get_selected_rows????? Das sind doch nur die Zeilen, die der User markiert hat und nicht Daten mit Änderungen
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
a-dead-trousers