Текущее время: Вс, июл 27 2025, 16:04

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: SY-UCOMM в обработке CALLBACK_USER_COMMAND
СообщениеДобавлено: Ср, апр 29 2009, 18:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Всем здрасте. Вопрос в следующем:
Есть ALV с обработчиком команд:
Code:
FORM alv_ucomm USING ipf_ucomm LIKE sy-ucomm         "#EC CALLED
           cps_selfield TYPE slis_selfield.
  CASE ipf_ucomm.
    WHEN 'XXX'.
      PERFORM open_form.

В проге "OPEN_FORM" вызывается стандартный ФМ, в котором, в свою очередь, вызывается экран:
Code:
  CALL SCREEN '0200' STARTING AT 5 5.
  IF sy-ucomm = 'ENTE'.

Так вот, sy-ucomm после обработки экрана равен 'XXX', хотя ok_code экрана равен 'ENTE'! Соответственно, ФМ работает не совсем как надо.
Обнуление в отладчике переменной sy-ucomm (в различных местах) не помогает - значение восстанавливается автоматически после очередного операнда. Что делать?? :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SY-UCOMM в обработке CALLBACK_USER_COMMAND
СообщениеДобавлено: Ср, апр 29 2009, 20:49 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Передавайте ipf_ucomm в интерфейс подпрограммы.

Добавил: извиняюсь, не до конца прочитал. Все правильно - sy-ucomm главного экрана имеет преимущество перед действиями в подэкране либо вызываемом экране. Перепишите либо на returning параметр, либо через память действие обработайте.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SY-UCOMM в обработке CALLBACK_USER_COMMAND
СообщениеДобавлено: Ср, апр 29 2009, 22:36 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 01 2005, 11:45
Сообщения: 98
В ALV, если он написан через класс, есть метод. Счас точно не помню его название - посмотрите. Называется типа SET_COMMAND. С помощью ео можно установить любую команду. А если надо обнулить команду, то просто передаете space. Я так делаю.
Если ALV написан через ФМ, то по всей видимости есть аналогичная функция. Надо капаться - под рукой нет системы

_________________
Даже если Вас съели, у вас все равно остается два выхода.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SY-UCOMM в обработке CALLBACK_USER_COMMAND
СообщениеДобавлено: Чт, апр 30 2009, 09:15 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Для вывода грида используется ФМ "REUSE_ALV_HIERSEQ_LIST_DISPLAY". Соответственно, класс CL_GUI_ALV_GRID не используется. ФМ для аналогичных целей не нашел. Попробовал сбросить SY-UCOMM через SET USER-COMMAND space. Обнулился. Но после вызова скрина он же все равно не меняется... :(

to John Doe: можно подробнее о "Перепишите либо на returning параметр, либо через память действие обработайте"

P.S. В проге "OPEN_FORM" вызывается стандартный ФМ, так что логика обработки экрана недоступна. Восстановление SY-UCOMM на значение 'XXX' происходит после вызова LEAVE TO SCREEN 0 в экранной логике внешнего скрина.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SY-UCOMM в обработке CALLBACK_USER_COMMAND
СообщениеДобавлено: Чт, апр 30 2009, 13:24 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Напишите пожалуйста название ФМ, попытаюсь смоделировать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SY-UCOMM в обработке CALLBACK_USER_COMMAND
СообщениеДобавлено: Чт, апр 30 2009, 13:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
IHCLSD_VALUATION_POPUP:
Code:
  DATA: lt_clobj TYPE TABLE OF clobj WITH HEADER LINE,
            lt_comw TYPE TABLE OF comw WITH HEADER LINE.

  lt_clobj-obtab = 'VBPS'.
  APPEND lt_clobj.

  CALL FUNCTION 'IHCLSD_INITIALIZE'
    TABLES
      it_obtab = lt_clobj[]
    EXCEPTIONS
      OTHERS   = 1.

  CALL FUNCTION 'IHCLSD_VALUATION_POPUP'
    EXPORTING
      i_klart = '300'
      i_class = p_class
    TABLES
      ct_comw = lt_comw[]
    EXCEPTIONS
      OTHERS  = 1.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: SY-UCOMM в обработке CALLBACK_USER_COMMAND
СообщениеДобавлено: Чт, апр 30 2009, 15:45 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, апр 24 2007, 15:56
Сообщения: 1402
Короче ФМ заточен для вызова на SELECTION-SCREEN, поэтому указанный косяк (с проверкой SY-SUBRC вне экрана) для сапа не критичен. Пришлось писать свою прогу :evil:


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

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


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

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


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

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