Текущее время: Чт, июн 26 2025, 12:48

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


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

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


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

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