Текущее время: Пт, апр 19 2024, 06:16

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Ср, апр 24 2019, 13:55 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 686
Коллеги, добрый день!
В программе используется элемент класса cl_gui_textedit.
Мне нужно, чтобы при наведении на этот элемент система определяла позицию указателя мыши в тексте, брала слово над которым сейчас мышь и выводила хинт для этого слова. Но в классе cl_gui_textedit нет подходящего события для обработки.
Такой функционал есть в классе cl_gui_sourceedit (событие quick_info), но мне внешний вид source edit не подходит.
Вопросы:
1. Как можно создать на основе cl_gui_textedit свой класс и определить там новое событие для MouseOver?
2. Если так нельзя, то есть ли какой-то ещё стандартный контрол для ввода текста, но с событием OnMouseOver?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Ср, апр 24 2019, 16:29 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
странный какойто подход - он ведь в корне ломает саповскую идеологию gui-клиента, когда минимизирован интерактив между клиентом (где мыщь ездиет) и сервером (где абапкод MouseOver собираетесь исполнять).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Ср, апр 24 2019, 17:21 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 347
[в качеств размышления, сам не пробовал] А если задействовать html+javascript и использовать события javascript?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Ср, апр 24 2019, 18:19 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
LAT написал(а):
[в качеств размышления, сам не пробовал] А если задействовать html+javascript и использовать события javascript?

Хтмл не будет слишком выделяться на фоне сапгуи-контроллов?
или есть CSS ки с цветовой гаммой сапа?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Чт, апр 25 2019, 09:20 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 686
HTML+javascript было бы хорошо.
В cl_gui_html_viewer есть событие sapevent, т.е. я мы мог обработать его через javascript, но мне нужно документ редактировать, а не отображать
Но вот в cl_gui_html_editor нет события sapevent.
Просмотрел все классы cl_gui_*edit*. Нужное мне событие есть только в sourceedit, но он мне совсем не подходит по внешнему виду.
Кто-нибудь видел в sap транзакцию с подобной функциональностью? Кроме редактора кода.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Чт, апр 25 2019, 09:27 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Osm написал(а):
HTML+javascript было бы хорошо.
В cl_gui_html_viewer есть событие sapevent, т.е. я мы мог обработать его через javascript, но мне нужно документ редактировать, а не отображать
Но вот в cl_gui_html_editor нет события sapevent.
Просмотрел все классы cl_gui_*edit*. Нужное мне событие есть только в sourceedit, но он мне совсем не подходит по внешнему виду.
Кто-нибудь видел в sap транзакцию с подобной функциональностью? Кроме редактора кода.

Так в html_viewer рисуем хтмл ареа, и оно тригеррит евент в сап через JS
Помню года два назад делали так круглую кнопку.
подобрали цвета, что от обычного сапа не отличишь.

посмотрите

saphtml_events_demo
только там события от кнопки, а в вашем случае от JS ивента


Последний раз редактировалось Kuranov.Dmitry Чт, апр 25 2019, 12:48, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Чт, апр 25 2019, 12:20 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
а если не секрет, что за такая хитрая процедура редактирования текста конструируется, что ещё и динамические хинты нужны?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Чт, апр 25 2019, 12:31 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 686
построитель выражений, где операндами могут быть функции. При наведении на функцию нужно выводить в подсказке её описание и аргументы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Чт, апр 25 2019, 13:44 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
так, а может стандартными "тэгами" саповского редактора пользоваться (вставить Символы - ну примерно как в редакторе формуляров SE71)? Оно же как единый неразрывный и нередактируемый (даже сдуру) элемент вставляется в текст, да ещё и подсвеченный серым фоном.

Останется только в pai-логике экрана опрашивать текущее наполнение буфера текста, и выводить например в подэкране сбоку/снизу список вида "Символ (ваша функция) - детализирующий текст" ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Чт, апр 25 2019, 15:25 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 686
что-то я не совсем понял. SE71 пользоваться не приходилось. Сейчас зашёл и не смог понять где там какой-то редактор текста. Если не трудно, покажите скриншот или путь по меню в этой транзакции.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Чт, апр 25 2019, 17:19 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 347
pberezin написал:
Останется только в pai-логике экрана опрашивать текущее наполнение буфера текста, и выводить например в подэкране сбоку/снизу список вида "Символ (ваша функция) - детализирующий текст" ?
Для запуска PAI должно произойти какое-нибудь событие. Если пользователь будет просто вводить текст (я так понял, именно для подсказок при вводе требуются хинты), PAI само по себе не запустится. Это разве что сделать таймер (viewtopic.php?f=13&t=2189, http://www.sapnet.ru/viewtopic.php?t=1382). И даже если идея с таймером сработает - пользователю после ввода новой функции придется немножко подождать, пока список обновится.
ЗЫ. В принципе, если хинт по наведению мышкой - непринципиальное требование, можно попробовать выводить хинт по нажатию на клавишу. Главный вопрос: позволяет ли cl_gui_textedit определить слово, на котором стоит курсор.
ЗЗЫ. А если принципиально, и с помощью javascript не получается, можно еще попробовать отнаследоваться от cl_gui_sourceedit и поменять внешний вид на желаемый.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Чт, апр 25 2019, 18:23 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, мар 29 2007, 11:51
Сообщения: 330
Откуда: Yugorsk.RU
Пол: Мужской
Цитата:
Для запуска PAI должно произойти какое-нибудь событие.

Ну так наколошматил пользователь много много Символов в текстовое поле в редакторе, нажал галку "Сохранить",
возник PAI,
из буфера наколошмаченного текста взяли подсчитали уникальные Символы,
построили список "Символ-какойто сопроводительный текст пояснения", вывели в отдельный контрол (хоть простым листингом, хоть readonly-текстовым контролом).
Получается, сколько чего не навводи в длинный текст (но не буквами абы как, а Символами, перечень которых соответствует я так понимаю набору функций, из которых автор составляет некое выражение), - на каждый введённый Символ будет своя подсказа в списке гдето рядом на экране маячить. Если конечно я правильно понял, что пытается нагородить автор в виде интерактивных хинтов.

Цитата:
что-то я не совсем понял. SE71 пользоваться не приходилось.

Нет возможности скриншот сделать. Зайдите например в XK01, XK02 или в любую транзакцию, где в многострочный редактор текстов можно провалиться (при условии что у Вас в настройках Редактора отключена интеграция с MS Word - т.е. открывается родной саповский многострочный редактор, см.пункт меню "Перейти К\Сменить редактор"). Там есть кнопка Вставить команду (Ctrl+F9) - вводите Символ в амперсандах, например &MOYAFORMULA1&, оно вставляется в Текст как неразрывный элемент.
Вот из них и конструируйте свои выражения, как из кубиков.
Тогда задача сведётся к подсчёту уникальных "кубиков" в тексте, и выводу на экран (в соседний контрол) какой либо сопроводительной информации.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Пт, апр 26 2019, 10:31 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
20 кубиков, 20 полей для подсказок?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Пт, апр 26 2019, 11:18 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Не совсем, конечно, OnMouseOver, но...

В cl_gui_textedit можно зарегистрировать событие F1 или другое, более-менее подходящее.
Внутри обработчика получить позицию курсора через метод GET_SELECTION_POS (для этого необязательно, чтобы текст был выделен),
считать строку текста в текущей позиции, определить слово, где находится курсор, а дальше - всё, что угодно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Какой GUI контрол для ввода текста поддерживает событие onMouseOver или как сделать свой
СообщениеДобавлено: Пт, апр 26 2019, 11:33 
Менеджер
Менеджер

Зарегистрирован:
Пн, июн 30 2008, 17:16
Сообщения: 686
baboon написал(а):
Не совсем, конечно, OnMouseOver, но...

В cl_gui_textedit можно зарегистрировать событие F1 или другое, более-менее подходящее..

я пока сделал для doubleclick. Но это не то, что нужно.


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

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


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

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


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

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