Текущее время: Вс, июн 29 2025, 21:33

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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