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 IMPLEMENTATIONCode: 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.
 
   
   
 