Code: Alles auswählen.
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row.
PRIVATE SECTION.
ENDCLASS. "lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION. "#EC
METHOD handle_double_click.
READ TABLE gt_out INDEX e_row-index INTO gs_out.
SET PARAMETER ID 'BES' FIELD gv_ebeln.
CALL TRANSACTION 'ME22N'.
ENDMETHOD. "handle_double_click
ENDCLASS. "lcl_event_receiver IMPLEMENTATION
Code: Alles auswählen.
* event double_click initialisieren
create object go_receiver.
SET HANDLER go_receiver->handle_double_click FOR go_grid.
Code: Alles auswählen.
data: go_receiver TYPE REF TO lcl_event_receiver.
Code: Alles auswählen.
FORM user_commands USING i_ucomm TYPE syst-ucomm "#EC CALLED by ALV
i_selfield TYPE slis_selfield.
CONSTANTS:
lc_tcode TYPE syst-tcode VALUE 'MM03'.
DATA:
lv_matnr TYPE mara-matnr.
CASE i_ucomm.
WHEN '&IC1'. "Double click
IF i_selfield-fieldname = 'MATNR'.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = lc_tcode
EXCEPTIONS
ok = 0
not_ok = 2
OTHERS = 99.
IF sy-subrc IS NOT INITIAL.
MESSAGE e172(00) WITH lc_tcode.
ELSE.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = i_selfield-value
IMPORTING
output = lv_matnr
EXCEPTIONS
length_error = 1
OTHERS = 99.
IF NOT sy-subrc IS INITIAL.
MESSAGE i171(q3) WITH i_selfield-value.
ELSE.
SET PARAMETER ID 'MAT' FIELD lv_matnr.
CALL TRANSACTION lc_tcode AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDIF.
WHEN OTHERS.
* NOP
ENDCASE.
ENDFORM. "user_commands
Code: Alles auswählen.
* Displays the ALV grid
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_interface_check = lv_check
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = lv_repid
* I_CALLBACK_PF_STATUS_SET = ' '
i_callback_user_command = 'USER_COMMANDS'
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
...
Code: Alles auswählen.
* event double_click initialisieren
create object go_receiver.
SET HANDLER go_receiver->handle_double_click FOR go_grid.
Neinn, den wenn ein Doppelklick im ALV ausgeführt wird, wird das Ereignis ausgelöst, aber nicht PAI durchlaufen. Wenn also nicht zu PBO dem Ereignis ein Verbraucher zugewiesen wird, wird das Ereignis "Doppelklick" ins leere laufen.kostonstyle hat geschrieben:noch eine frage, warum muss dieser befehl in pbo stehen, warum nicht in pai.
Code: Alles auswählen.
set parameter id 'AUN' field belegnummerfeld
Danke dass du auch alle anderen wissen lässt, wie du es gelöst hast.vman hat geschrieben:Ich habe die Lösung jetzt selbst gefunden, aber danke an alle, die meine Frage gelesen und evtl. darüber nachgedacht haben.