Текущее время: Вт, апр 16 2024, 15:30

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


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

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


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

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