Виджет EQL-поиск размещается на формах приложений и страницах и позволяет осуществлять поисковые запросы на языке EQL365 (ELMA365 Query Language). Пользователи смогут применять операции и функции разработанного синтаксиса, задавать сложную выборку данных с множеством условий и выполнять поиск по параметрам любого приложения системы.
Настройка EQL-поиска при помощи виджета
Виджет EQL-поиск представляет собой строку поиска, в которой пользователи указывают EQL-запрос. Поиск по запросу осуществляется при помощи скрипта, который создаётся в дизайнере интерфейсов. Пользователь запускает его на странице или форме, например, при нажатии на настроенную кнопку. Результат поиска выводится в специальной добавленной переменной.
Рассмотрим подробнее настройку EQL-поиска в виджете. Для примера разместим виджет на отдельной странице Конверсия сделок, где отображается график перехода элементов по их статусам. Настроим поиск на странице по параметрам приложения Сделки.
Шаг 1. Добавление контекстных переменных
Чтобы настроить виджет EQL-поиск, в дизайнере интерфейсов создайте специальные контекстные переменные. Они используются для сопоставления с настройками виджета, а также для отображения результатов поиска.
- В дизайнере интерфейсов перейдите на вкладку Контекст.
- Добавьте свойства. Названия и коды переменных приведены для примера. Типы данных должны совпадать с указанными:
- Строка EQL-запроса (
eql
) — свойство с типом Строка. Указывается в настройках виджета и используется для ввода EQL-запроса; - Параметры EQL-поиска (
parameters
) — свойство Произвольный тип. Указывается в настройках виджета. Используется для передачи составленного запроса из виджета в скрипте его обработки; - Результат EQL-поиска (
appItems
) — свойство типа Приложение (несколько) с указанием приложения, по параметрам которого будет осуществляться поиск. В нашем примере используется приложение Сделки. Свойство добавляется на поле для моделирования для отображения всех элементов, совпадающих с условиями введённого пользователем EQL-запроса.
Шаг 2. Размещение и настройка виджета EQL-поиск
На следующем этапе настройте виджет EQL-поиск. Для этого:
- Перейдите на вкладку Шаблон и перетащите виджет с правой панели дизайнера интерфейсов в ту область поля для моделирования, где хотите разместить строку поиска.
- В открывшемся окне на вкладке Основные укажите настройки виджета:
- Строка EQL — сопоставьте опцию с переменной типа Строка, добавленной на шаге 1. Нажмите <Не установлено> и выберите свойство из списка. В нашем примере — это Строка EQL-запроса;
- Параметры EQL — сопоставьте опцию с переменной Произвольный тип, добавленной на шаге 1. Нажмите <Не установлено> и выберите свойство из списка, например Параметры EQL-поиска;
- Приложение* — выберите приложение, по параметрам которого будет выполняться поиск с учётом условий составленных EQL-запросов. В нашем примере — приложение Сделки.
- На вкладках События и Системные вы можете задать системные настройки, одинаковые для всех виджетов. Они позволяют управлять видимостью и доступом виджета, настраивать поведение при наведении курсора и т. д. Подробнее об этом читайте в статье «Системные настройки виджетов»
- Сохраните заданные в виджете параметры.
Шаг 3. Настройка скрипта обработки EQL-запроса
Поиск по составленному пользователем EQL-запросу должен осуществляться с помощью скрипта. В дизайнере интерфейсов необходимо предусмотреть его запуск и обработку. Например, пользователи могут нажимать на кнопку, чтобы загрузить EQL-запрос и просмотреть результаты поиска.
Чтобы это настроить, выполните следующие действия:
- На вкладке Виджеты на правой панели дизайнера интерфейсов найдите виджет Кнопка. Перетащите его на поле для моделирования, например, разместите кнопку под строкой EQL-поиска.
- В открывшемся окне настройте отображение кнопки и задайте её название, например, Поиск.
- В поле Выполняемый скрипт нажмите Создать и укажите название скрипта, который будет запускаться при нажатии на кнопку, например, Click;
- Нажмите на появившуюся в поле кнопку Открыть, чтобы перейти на вкладку Скрипты и задать следующую команду:
async function Click (): Promise<void> {
Context.data.appItems = await Context.fields.appItems.app.search().where(Context.data.eql!, Context.data.parameters).all();
}
Шаг 4. Настройка отображения результата поиска
Согласно заданному скрипту найденные по EQL-запросу элементы приложения записываются в переменную Результат EQL-поиска, созданную на шаге 1. Её можно использовать в дизайнере интерфейсов. Например, отобразим результат поиска на странице. Для этого:
- Перейдите на вкладку Шаблон и на правой боковой панели нажмите Свойства.
- Перетащите свойство Результат EQL-поиска на поле для моделирования. Например, разместите его под настроенной кнопкой Поиск.
- В открывшемся окне настроек в поле Только для чтения отметьте Да, чтобы пользователи могли только просматривать отображаемые в свойстве элементы.
- Задайте другие настройки строки формы. Например, включите опцию Скрывать, если не заполнено, чтобы показывать поле с найденными элементами только после обработки EQL-запроса.
- Сохраните заданные параметры.
Шаг 5. Публикация настроенного интерфейса
Настройки страницы в дизайнере интерфейсов для нашего примера могут выглядеть следующим образом:
Чтобы страница стала доступна пользователям, нажмите Сохранить и Опубликовать на верхней панели дизайнера интерфейсов.
Теперь пользователи могут использовать EQL-поиск, чтобы искать элементы приложения Сделки.