Текущее время: Вс, июл 20 2025, 00:14

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Пт, сен 06 2013, 16:05 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 02 2007, 10:31
Сообщения: 15
Как программно установить курсор на поле команд, что вверху на панели кнопок (или просто фокус на панель кнопок) стандартного саповского экрана?
Зачем это надо? Поясню. На экране расположена ALV-грид. Через Hot-key, скажем, вызывается второй экран (модальный). из него я могу выйти обратно, простым нажатием Escape. А вот из первого экрана (с ALV) по Esc выйти уже не получится, потому-что фокус уже не на командном поле, а в ALV. А пользователю удобно, чтобы по Esc вываливаться последовательно из всех экранов.
Так вот, как мне программно после закрытия второго экрана установить фокус на командном поле, чтобы можно было вывалиться по Escape?
Что-то типа set cursor, что ли, или какой-нибудь set focus ...
философские вопросы типа "а зачем тебе это надо" не обсуждаются.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Пн, сен 09 2013, 08:00 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Мне кажется, постановка вопроса не верна - если я правильно понял, вы хотите после команды выхода со "второго" окна, минуя "первое" окно (с ALV Grid), попасть сразу, например, на экран параметров отчета.
Вариантов множество - от LEAVE TO SCREEN до перезапуска отчета (пример такой процедурки я уже публиковал ранее в одной из веток). Самое главное - определить признак, что вы именно сейчас хотите покинуть экран Grid'а.
Выход можно организовать как в PAI-логике (реализация списка на классе), так и в CALLBACK-процедуре (реализация через ФМ REUSE_*).

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Пн, сен 09 2013, 10:49 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
abby написал(а):
...из первого экрана (с ALV) по Esc выйти уже не получится, потому-что фокус уже не на командном поле, а в ALV.
А какая версия у SAPGUI?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Пн, сен 09 2013, 13:57 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 11 2011, 15:15
Сообщения: 14
м.б. вот так

Code:
        " чтобы попал в PBO экрана:
        CALL METHOD cl_gui_cfw=>set_new_ok_code
          EXPORTING
            new_code = 'DUMMY'.



Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Вт, сен 10 2013, 14:55 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 02 2007, 10:31
Сообщения: 15
To nicky555:

постановка такая, какая есть, не надо "лечить", я предупреждал. Мне не надо, минуя первое окно, выходить из него. Для этого, как правильно заметили, есть масса методов. Мне надо обеспечить, чтобы, находясь в первом окне, пользователь, ЕСЛИ захочет, мог бы выйти из него простым нажатием Escape, без предварительных каких-либо движений мышкой и нажатий клавиш.

To nickan: нет, я пробовал "cl_gui_cfw=>set_new_ok_code", это не работает.

To LAT: SAP GUI 720 версия файла 7200.3.13.3242


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Вт, сен 10 2013, 15:03 
Начинающий
Начинающий

Зарегистрирован:
Вт, янв 11 2011, 15:15
Сообщения: 14
[url]
http://sapboard.ru/forum/viewtopic.php? ... 65&start=0
[/url]


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Вт, сен 10 2013, 15:08 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 02 2007, 10:31
Сообщения: 15
nickan написал(а):



Нет, я видел эту тему, там говорится, как поставить фокус на грид, а мне нужно наоборот, убрать из грида на инструментальную панель.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле  Тема решена
СообщениеДобавлено: Вт, сен 10 2013, 18:12 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Цитата:
Так вот, как мне программно после закрытия второго экрана установить фокус на командном поле

Необязательно же на командном поле устанавливать курсор. На обычном поле ESC же срабатывает.
Можно положить на экран обычное текстовое поле, сделать его невидимым. Если включено сжатие экрана, на внешний вид это никак не повлияет.

1)В PBO устанавливаем курсор на новое поле с помощью SET CURSOR
2) После выхода из модального окна любым способом запускаем на выполнение логику основного экрана, тем же cl_gui_cfw=>set_new_ok_code, например.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Ср, сен 11 2013, 13:44 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 02 2007, 10:31
Сообщения: 15
Rokhay написал:
Цитата:
Так вот, как мне программно после закрытия второго экрана установить фокус на командном поле

Необязательно же на командном поле устанавливать курсор. На обычном поле ESC же срабатывает.
Можно положить на экран обычное текстовое поле, сделать его невидимым. Если включено сжатие экрана, на внешний вид это никак не повлияет.

1)В PBO устанавливаем курсор на новое поле с помощью SET CURSOR
2) После выхода из модального окна любым способом запускаем на выполнение логику основного экрана, тем же cl_gui_cfw=>set_new_ok_code, например.



Да, эта идея работает, спасибо Rokhay!

cl_gui_cfw=>set_new_ok_code вызывать необязательно, достаточно set cursor сделать на поле. Хоть обходным путём, но задача решается.
Единственная техническая деталь - полностью невидимым поле сделать не удаётся. Если задать как поле ввода (и поставить галку 'невидимое поле'), система по умолчанию пихает туда #, пробел оставить не удаётся. Если сделать Label, то всё равно какой-то печатный сисвол надо вставить.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Ср, сен 11 2013, 14:02 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Цитата:
полностью невидимым поле сделать не удаётся.

Почему не удается?
lable с любым текстом + галка «Невидимое поле».


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Ср, сен 11 2013, 18:27 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
abby написал(а):
...из первого экрана (с ALV) по Esc выйти уже не получится, потому-что фокус уже не на командном поле, а в ALV.... SAP GUI 720
Если есть возможность, попробуйте 730.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Ср, сен 11 2013, 19:01 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Цитата:
Если есть возможность, попробуйте 730.

730 patch 2 — ничего нового, все так же.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Чт, сен 12 2013, 14:37 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 02 2007, 10:31
Сообщения: 15
Rokhay написал:
Цитата:
полностью невидимым поле сделать не удаётся.

Почему не удается?
lable с любым текстом + галка «Невидимое поле».



- да, поле невидимое, только тогда эффект установки курсора на нём пропадает и весь механизм не работает :D


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Чт, сен 12 2013, 19:10 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Цитата:
- да, поле невидимое, только тогда эффект установки курсора на нём пропадает и весь механизм не работает :D

проверяли?
Я сделал пример с невидимым полем — сработало.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программная установка курсора (или фокуса) на командное поле
СообщениеДобавлено: Пт, сен 13 2013, 11:06 
Начинающий
Начинающий

Зарегистрирован:
Пн, июл 02 2007, 10:31
Сообщения: 15
Rokhay написал:
Цитата:
- да, поле невидимое, только тогда эффект установки курсора на нём пропадает и весь механизм не работает :D

проверяли?
Я сделал пример с невидимым полем — сработало.


Я проверял, у меня однозначно не работает, если Label - невидимо.

Может, в отладчике делаете точку останова. Тогда картина искажается, и курсор выходит из ALV. Если без отладчика - не работает.


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

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


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

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


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

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