Двойной щелчок по строке и столбцу в сетках ALV.

В настоящее время у меня есть сетка ALV, и я могу дважды щелкнуть, чтобы вызвать транзакцию IE03 и передать информацию в первом столбце (то есть eqkt-equnr). Однако эта транзакция вызывается независимо от того, на какой столбец вы нажимаете. Это было бы не так уж плохо, но мне нужно иметь возможность вызывать IW33, если вы нажмете на 3-й столбец и передадите туда значение equz-J_3GEIGNER.

Мой текущий код двойного щелчка выглядит следующим образом. t_report — это моя структура, а matnr — ее часть equnr. maktx это его J_3GEIGNER часть.

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.

person babno    schedule 30.11.2012    source источник


Ответы (1)


Используйте поле wa_selrow-fieldname, чтобы определить, какой столбец был нажат. Имейте в виду, что вам, возможно, придется переключить сетку из режима выбора строк в режим выбора ячеек - поскольку вы не показали нам, как вы создали сетку, я не могу сказать вам, как это сделать в вашем случае. Взгляните на SEL_MODE свойство, это может помочь .

person vwegert    schedule 30.11.2012
comment
Я совершенно уверен, что это режим выбора ячеек (при запуске он будет выделять отдельные ячейки). На что мне проверить wa_serow-fieldname? Я пробовал «Оборудование» «EQUNR» t_report-matnr и eqkt-equnr - person babno; 01.12.2012
comment
Совершенно уверен, что вы никуда не денетесь - либо это, либо это не так. Что касается имени поля - рассматривали ли вы возможность использования отладчика для проверки содержимого параметров? - person vwegert; 01.12.2012
comment
@vwegert, он по-прежнему работает с другими столбцами, даже когда я указываю поле, на котором он должен действовать исключительно. IF RS_SELFIELD-FIELDNAME = 'EBELN'. - person Anuj Kaithwas; 09.08.2017