Текущее время: Пн, июн 30 2025, 06:52

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Можно ли в ReuseALV перехватывать нажатия стандартных кнопок
СообщениеДобавлено: Вт, дек 14 2004, 11:24 
Гость
Можно ли в ReuseALV перехватывать нажатия стандартных кнопок: Назад, Выход, Отменить. Мне нужно повесить на них POPUP_TO_CONFIRM_LOSS_OF_DATA?


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 14 2004, 12:41 
Гость
Совет простой:
переопредели значения стандартных кнопок,
например на рефреш сделай RFR
а потом в процедуре USER-COMMAND

сделай
case r_ucomm.
when 'RFR'.
SET USER-COMMAND '&NTE'.
endcase.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, дек 14 2004, 17:18 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
В REUSE_ALV_GRID_DISPLAY есть экспорт-параметр ES_EXIT_CAUSED_BY_USER - указывает на то, по нажатию какой из трех перечисленных кнопок пользователь вышел из Grid'а.
Можно задать ему (пользователю) вопрос "post factum" :)

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:   Тема решена
СообщениеДобавлено: Ср, дек 15 2004, 13:01 
Гость
Я уже отвечал в одной и тем так - см.ниже.

Добавлено: Ср Дек 15, 2004 3:54 pm Заголовок сообщения:

--------------------------------------------------------------------------------

Значится так. В параметрах EXPORTING вставляешь строку I_CALLBACK_USER_COMMAND.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
...
I_CALLBACK_USER_COMMAND = 'DARIEN'
...
TABLES
T_OUTTAB = it
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2 .

Где Darien - название формы, в которой Вы обрабатываете нажатые клавиши.

FORM Darien USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.

CASE r_ucomm.
WHEN '&IC1'. (в данном случае - это двойной щелчок по
элементу в гриде - стандарт).
.....
ENDCASE.
ENDFORM.

Дальше я думаю - разобраться не проблема.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 15 2004, 14:55 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Darien написал(а):
Я уже отвечал в одной и тем так - см.ниже.

Добавлено: Ср Дек 15, 2004 3:54 pm Заголовок сообщения:

--------------------------------------------------------------------------------

Значится так. В параметрах EXPORTING вставляешь строку I_CALLBACK_USER_COMMAND.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
...
I_CALLBACK_USER_COMMAND = 'DARIEN'
...
TABLES
T_OUTTAB = it
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2 .

Где Darien - название формы, в которой Вы обрабатываете нажатые клавиши.

FORM Darien USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.

CASE r_ucomm.
WHEN '&IC1'. (в данном случае - это двойной щелчок по
элементу в гриде - стандарт).
.....
ENDCASE.
ENDFORM.

Дальше я думаю - разобраться не проблема.


Речь то идет о предопределенных стандартных командах, а их то, можно обработать только как описали ВН и Никки


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 15 2004, 15:42 
Гость
Как только перехвачено нажатие клавиши - можно вставлять свой код, который будет исполняться. В приведенном мною примере '&IC1' - стандартный код, который я отлавливаю и выполняю свою последовательность действий... Да чего тут спорить. Татами всех рассудит ;-) В смысле - попробуйте.


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 15 2004, 16:28 
Гость
Darien написал(а):
Как только перехвачено нажатие клавиши - можно вставлять свой код, который будет исполняться. В приведенном мною примере '&IC1' - стандартный код, который я отлавливаю и выполняю свою последовательность действий... Да чего тут спорить. Татами всех рассудит ;-) В смысле - попробуйте.


Уважаемый,
ваша подпрограмма не будет срабатывать вообще,
если нажата стандартная клавиша,
поэтому изюминка в том - чтобы переопределить значения стандартных клавиш, а потом через SET USER-COMMAND
эмулировать нажатие стандартной клавиши


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения: Re: Можно ли в ReuseALV перехватывать нажатия стандартных кн
СообщениеДобавлено: Ср, дек 15 2004, 17:59 
Начинающий
Начинающий

Зарегистрирован:
Чт, сен 30 2004, 10:57
Сообщения: 16
Откуда: Москва
Пол: Мужской
jugger написал(а):
Можно ли в ReuseALV перехватывать нажатия стандартных кнопок: Назад, Выход, Отменить. Мне нужно повесить на них POPUP_TO_CONFIRM_LOSS_OF_DATA?


в отладчике обнаружен такой кусок.
если заполнить gt_grid-s_layout-confirmation_prompt = 'X',
то попросит подтверждения


SAPLSLVC_FULLSCREEN
LSLVC_FULLSCREENF01 1.558 - 1.57

perform exit.
endif.
*>>>Y9CK026390
when '&F03'.
*<<<Y9CK026390
l_subrc = 0.
if not gt_grid-s_layout-confirmation_prompt is initial.
perform confirmation_prompt using l_subrc.
endif.
if l_subrc eq 0.
es_exit_caused_by_user-back = 'X'.
clear l_okcode.
perform exit.
endif.
*>>>Y9CK026390


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 16 2004, 02:24 
Гость
ВН написал(а):
Darien написал(а):
Как только перехвачено нажатие клавиши - можно вставлять свой код, который будет исполняться. В приведенном мною примере '&IC1' - стандартный код, который я отлавливаю и выполняю свою последовательность действий... Да чего тут спорить. Татами всех рассудит ;-) В смысле - попробуйте.


Уважаемый,
ваша подпрограмма не будет срабатывать вообще,
если нажата стандартная клавиша,
поэтому изюминка в том - чтобы переопределить значения стандартных клавиш, а потом через SET USER-COMMAND
эмулировать нажатие стандартной клавиши


Вы не правы ... программа срабатывать будет и срабатывает ... у меня так отчет работает ... именно с &IC1 ... это даблклик ... видимо по умолчанию он никак не обрабатывается, поэтому успешно проходит собственная обработка ...


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 16 2004, 08:25 
Специалист
Специалист

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
BH прав... :D
он же так и написал в случае нажатия на стандартную клавишу...
а пример Darien в том виде в каком приведен конечно будет работать...только вот с моей точки зрения даблклик тут скорее событие, а не нажатие стандартной кнопки


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 16 2004, 08:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Совершенно правильно :)
Уважаемый путает &IC1 и кнопки BACK, EXIT и CANCEL - они имет совершенно другой тип и подразумевают системную обработку. Обратитесь к справке - там опять-таки написано:
"Note: Functions 'Back (F3)', 'Exit (F15)' and 'Cancel (F12)' are NO ALV standard functions, but system functions. If the application wants to respond to these functions (for example, to perform a confirmation prompt before leaving the list), these functions must be assigned application-specific function codes.".
То есть, лишь переопределив эти кнопки собственными кодами, можно повлиять на обработку.
А вот идея с подтверждением выхода - это да, есть такой параметр в IS_LAYOUT. Но возникнет лишь стандартный вопрос без возможности польхзовательской обработки.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 16 2004, 08:51 
Гость
Попробовал. Глубокий нокаут... 8)


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 16 2004, 13:21 
Гость
создайте свой pf-статус измените кнопки с BACK на BACK1 и т.д. и их ловите ...


Пометить тему как нерешенную
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 17 2004, 02:05 
Гость
Eugene написал(а):
BH прав... :D
он же так и написал в случае нажатия на стандартную клавишу...
а пример Darien в том виде в каком приведен конечно будет работать...только вот с моей точки зрения даблклик тут скорее событие, а не нажатие стандартной кнопки


полностью согласен, я потому и написал, что обработка работает только для даблклика, определенного в стандартном статусе ...

зы: а ВН написал, что кусок Дариена не будет работать, значит он все-таки неправ :-Р


Пометить тему как нерешенную
Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB