Haga doble clic en una fila y una columna en ALV Rejillas

Actualmente tengo un ALV grid y me puede hacer doble clic para llamar la transacción IE03 y pasar la información de la primera columna (que es eqkt-equnr). Sin embargo, esta operación se denomina independientemente de lo que la columna haga clic en. Esto no sería tan malo, pero tengo que ser capaz de llamar a IW33 si hace clic en la 3ª columna y pasar a lo largo de la equz-J_3GEIGNER valor allí.

Mi actual doble clic en código es como sigue. t_report es mi struct y matnr es el equnr parte de ella. maktx es el J_3GEIGNER parte de ella.

FORM user_command USING r_ucomm
     wa_selrow TYPE slis_selfield.

   IF r_ucomm = '&IC1'.
     READ TABLE t_report INDEX wa_selrow-tabindex.
     IF sy-subrc = 0.
       SET PARAMETER ID 'EQN' FIELD t_report-matnr.
       CALL TRANSACTION 'IE03' AND SKIP FIRST SCREEN.
     ENDIF.
   ENDIF.
ENDFORM.
InformationsquelleAutor babno | 2012-11-30

1 Kommentar

  1. 3

    Utilice el campo wa_selrow-fieldname para determinar la columna por la que se hizo clic. Ser consciente de que puede que tenga que cambiar la cuadrícula de selección de la fila modo de modo de selección de celda – desde que no nos muestran cómo ha creado la red en primer lugar, yo no te puedo decir cómo hacer esto en su caso. Echa un vistazo a la SEL_MODE de la propiedad, podría ayudar.

    • Estoy bastante seguro de que es el modo de selección de celda (cuando se ejecuta pondrá de relieve las células individuales). ¿Qué puedo comprobar wa_selrow-fieldname contra? He tratado de ‘Equipo’ ‘EQUNR’ t_report-matnr y eqkt-equnr
    • «Bastante seguro» de llegar de la nada: o se es o no lo es. Como para el nombre de campo – ¿has pensado en usar el depurador para inspeccionar el contenido de los parámetros?
    • todavía funciona en otras columnas, incluso cuando yo especificar el campo en el que se actúe exclusivamente. IF RS_SELFIELD-FIELDNAME = 'EBELN'.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea