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

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


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

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


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

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