Текущее время: Сб, июн 28 2025, 20:33

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Как принудительно вызвать PBO экрана?
СообщениеДобавлено: Пн, сен 05 2005, 12:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Уже не раз сталкивался с такой необходимостью, но как то выкручивался. А все же, возможно такое сделать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 05 2005, 12:17 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Можно попробовать функциональный модуль SAPGUI_SET_FUNCTIONCODE, но на самом деле такая потребность при правильном построении программы возникать не должна.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 05 2005, 12:24 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
EGF написал(а):
Можно попробовать функциональный модуль SAPGUI_SET_FUNCTIONCODE, но на самом деле такая потребность при правильном построении программы возникать не должна.
Например хочется иногда после выбора элемента из справочника по F4 не нажимать Enter, а сразу отработать PBO. Ну SAPGUI_SET_FUNCTIONCODE в основном подойдет. Думал, может есть что-то прямее.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 05 2005, 13:24 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
У меня была аналогичная проблема - в алв логике не попадал в PBO.
Мне помогло
Code:
 
CALL METHOD cl_gui_cfw=>set_new_ok_code
    EXPORTING
      new_code = 'DUMMY'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 08:49 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, апр 06 2006, 15:06
Сообщения: 88
Boger написал(а):
У меня была аналогичная проблема - в алв логике не попадал в PBO.
Мне помогло
Code:
 
CALL METHOD cl_gui_cfw=>set_new_ok_code
    EXPORTING
      new_code = 'DUMMY'.

Аналогичная проблема: но при вызове cl_gui_cfw=>set_new_ok_code отрабатывают PBO главного экрана и всех подэкранов, при этом курсор "улетает" с ALV-Grid-а на поле ввода в первом подэкране.
Вопрос: как оставить курсор на месте, т.е. в ALV-Grid-е?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 09:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Может вызвать у грида в PBO метод SET_FOCUS?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 09:18 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, июн 16 2005, 10:29
Сообщения: 336
Откуда: Минск->Москва
Пол: Мужской
А в таб контроле почему то ни один из способов не закинул меня PBO:( (Тоже обработка процесса ON VALUE-REQUEST)
Тут особенности никакой нет?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 10:39 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, апр 06 2006, 15:06
Сообщения: 88
T написал:
Может вызвать у грида в PBO метод SET_FOCUS?

Пробовал, без толку.
Фокус улетает на подэкран типа selection-screen.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 10:57 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, апр 06 2006, 15:06
Сообщения: 88
z_av написал(а):
T написал:
Может вызвать у грида в PBO метод SET_FOCUS?

Пробовал, без толку.
Фокус улетает на подэкран типа selection-screen.

Так, теперь вопрос решился: если устанавливать фокус в PBO не того подэкрана, на котором лежит grid, а в PBO главного экрана, причем после того, как отработали PBO всех подэкранов - тогда фокус остается на Grid-е.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: ку
СообщениеДобавлено: Чт, июн 22 2006, 13:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
suppress dialog
cl_gui_alv_grid=>set_focus( lcl_grid )


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 22 2006, 13:24 
Модератор
Модератор

Зарегистрирован:
Пт, ноя 12 2004, 11:40
Сообщения: 542
Откуда: Москва
Пол: Мужской
Code:
CALL METHOD cl_gui_cfw=>dispatch( ).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как принудительно вызвать PBO экрана?
СообщениеДобавлено: Ср, ноя 25 2009, 11:04 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 13 2007, 12:25
Сообщения: 40
Здравствуйте!
У меня проблема, не относящаяся к теме, но озвученная в ответах.
На подэкране размещен редактируемый OO Grid, к нему есть событие data_changed, срабатывающее при нажатии кнопки Enter.
Однако, после проработки события, фокус с грида уходит на подэкран (логика подэкрана при этом не срабатывает - да он и не нужен), как мне этот фокус вернуть или оставить не знаю. Если вдруг кто-то уже упирался в эту сиитуацию - подскажите, пожалуйста.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как принудительно вызвать PBO экрана?
СообщениеДобавлено: Ср, ноя 25 2009, 11:38 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 25 2008, 17:07
Сообщения: 144
Откуда: Казань
Пол: Мужской
Porter написал(а):
Однако, после проработки события...

Видать в этом весь косяк. У меня такого не происходит. Опишите поподробнее как обрабатываете событие.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как принудительно вызвать PBO экрана?
СообщениеДобавлено: Ср, ноя 25 2009, 12:27 
Ассистент
Ассистент

Зарегистрирован:
Вт, ноя 13 2007, 12:25
Сообщения: 40
событие описано в локальном классе как:
HANDLE_DATA_CHANGED
FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID
IMPORTING ER_DATA_CHANGED.

в PBO подэкрана, на котором расположен грид:

CREATE OBJECT CUST_CONTAINER2
EXPORTING
CONTAINER_NAME = CONT_ON_NAL
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.

CREATE OBJECT GRID2
EXPORTING
I_PARENT = CUST_CONTAINER2.

CREATE OBJECT EVENT_RECEIVER.
SET HANDLER EVENT_RECEIVER->HANDLE_DATA_CHANGED FOR GRID2.
CALL METHOD GRID2->REGISTER_EDIT_EVENT
EXPORTING
I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_ENTER.

* CALL METHOD GRID2->REGISTER_EDIT_EVENT
* EXPORTING
* I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED.

READ TABLE GT_ZODC_DYNP WITH KEY A_TYPE = 'A' TRANSPORTING NO FIELDS. " A - загружено из АУТН
IF SY-SUBRC <> 0 OR GT_ZODC_DYNP[] IS INITIAL.
GS_LAYOUT-EDIT = 'X'.
ENDIF.

PERFORM CIS_FIELDCAT TABLES GT_FIELDCAT.

PERFORM FILL_DRDN_TABLES_0300.

PERFORM EXCLUDE_FUNCTIONS_0300 TABLES LT_EXCLUDE.

CALL METHOD GRID2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'ZODC_FCAT'
IS_LAYOUT = GS_LAYOUT
IT_TOOLBAR_EXCLUDING = LT_EXCLUDE
CHANGING
IT_FIELDCATALOG = GT_FIELDCAT[]
IT_OUTTAB = GT_ZODC_DYNP[].


Вот. Может наметанным глазом что-нибудь сразу видно.
Интересно и то, что в примере BCALV****EDIT все вроде так и написано. Но, там все правильно прорабатывает, а у меня криво.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как принудительно вызвать PBO экрана?
СообщениеДобавлено: Ср, ноя 25 2009, 13:11 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 25 2008, 17:07
Сообщения: 144
Откуда: Казань
Пол: Мужской
Код на форуме лучше пихать в тэги.
Объявление обработчика события описали без ошибок Вы. 8)
Интересно, что происходит в методе EVENT_RECEIVER->HANDLE_DATA_CHANGED.
Видимо там у Вас сбивается курсор.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

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


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

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


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

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