Создание запроса
В Дизайнере ELMA запрос может быть написан на языке HQL и/или SQL. Язык HQL работает с объектами системы, а язык SQL – с элементами базы данных (таблицами, столбцами, записями и т.д.). Язык запроса выбирается при создании или редактировании источника.
В левой части вкладки Источники данных находится боковая панель, в который располагаются данные, которые могут быть использованы в запросе. При использовании языка HQL данные на боковой панели сгруппированы по объектам (рис. 1), а при использовании языка SQL структура данных представляется в виде набора таблиц и их полей (рис. 2).

Рис. 1. Боковая панель инструментов при использовании языка HQL

Рис. 2. Боковая панель инструментов при использовании языка SQL
Для удобства элементы с боковой панели могут быть перенесены в текст запроса путем зажатия требуемого элемента кнопкой мыши и переноса его в необходимое место в правой части окна.
Боковая панель инструментов состоит из нескольких вкладок: Объекты /Объекты БД, Процессы , Проекты , Документы , Перечисления , Системные параметры , Параметры , которые отображаются на вкладке Источники данных вне зависимости от выбранного языка запроса.
На данной вкладке (рис. 2) отображены таблицы и поля базы данных, расположенные в системе ELMA. Группировка полей на данной вкладке осуществляется в зависимости от их отношения к той или иной таблице в базе данных.
На данной вкладке (рис. 1) отображены все объекты, расположенные в системе ELMA. Каждый объект имеет свойства, которые отображаются на один уровень иерархии ниже объекта в дереве.
Синим цветом на данной вкладке обозначены свойства всех базовых классов – родительских объектов, от которых был унаследован объект.
На данной вкладке (рис. 3) отображены процессы и их контекстные переменные, существующие в системе. При добавлении процесса на вкладке Процессы Дизайнера ELMA новый процесс автоматически добавляется на данную вкладку.

Рис. 3. Вкладка "Процессы"
На данной вкладке (рис. 4) отображены типы проектов и их атрибуты, существующие в системе. Данная вкладка доступна только при наличии активированного приложения Проекты+.

Рис. 4. Вкладка "Проекты"
На данной вкладке (рис. 5) отображены типы документов и их атрибуты, существующие в системе. В том случае, если в системе активировано приложение ECM+, на вкладке Документооборот Дизайнера ELMA могут быть созданы новые типы документов и их атрибуты, которые будут в дальнейшем отображены на данной вкладке.

Рис. 5. Вкладка "Документы"
На данной вкладке (рис. 6) отображены группы перечислений и все перечисления, существующие в системе. При добавлении перечисления на вкладке Объекты Дизайнера ELMA в блоке Перечисления данное перечисление автоматически добавляется на вкладку Перечисления.

Рис. 6. Вкладка "Перечисления"
В качестве примера использования перечислений может быть рассмотрено создание отчета, в который будут выведены задачи с определенным статусом. В данном случае требуемое значение статуса задачи будет добавляться в запрос со вкладки Перечисления. из группы Задачи (рис. 6).
На данной вкладке (рис. 7) отображены системные параметры ("Текущий пользователь" и "Текущая дата"), которые могут быть добавлены в запрос.

Рис. 7. Вкладка "Системные параметры"
На данной вкладке (рис. 8) отображены параметры отчета, которые добавляются в карточке отчета на вкладке Параметры .

Рис. 8. Вкладка "Параметры"
Особенности написания запросов
При составлении запроса на вкладке Источники данных необходимо учитывать следующие особенности, которые применимы для всех источников данных:
-
запрос должен начинаться с ключевого слова select;
-
не использовать сортировку результирующей выборки;
-
не использовать ключевое слово order by;
-
учитывать ограничения на длину псевдонима базы данных для следующих СУБД:
MSSQL Server – 128 символов;
Firebird 2.5 – 255 символов;
PostgreSQL – 63 символа;
Oracle – 30 символов (с версии 12.2 и выше – 128 символов).
-
не использовать количественные ограничения для результирующей выборки. Следует использовать ключевые слова для СУБД:
Firebird – FIRST, SKIP;
PostgreSQL – OFFSET, LIMIT;
MS SQL Server – OFFSET, FETCH NEXT.
-
для источника типа Внутренний (HQL) необходимо указывать псевдоним базы данных. Это необходимо для осуществления сортировки и группировки данных из выборки.
Пример запроса для отображения отчета с настраиваемой таблицей
Рассмотрим пример. Создадим отчет с выборкой всех пользовательских задач (входящих, исходящих) и их исполнителей. При этом макет отчета (с настраиваемой таблицей) будет формироваться с помощью запроса.
Для начала необходимо в Дизайнере ELMA создать пользовательский отчет. Далее на вкладке Источники данных составить запрос (рис. 9). В данном примере запрос составлен для СУБД Firebird.

Рис. 9. Вкладка "Источники данных"
На вкладке Настройки отображения в блоке Макет отчета выбрать .NET Razor и нажать на кнопку Перейти к вкладке (рис. 10).

Рис. 10. Блок "Макет отчета". Вкладка "Настройки отображения"
На открывшейся вкладке на верхней панели инструментов нажать на кнопку Шаблон – Шаблон таблицы (рис. 11).

Рис. 11. Кнопка "Шаблон – Шаблон таблицы". Вкладка "Макет отчета (.NET Razor)"

Рис. 12. Диалоговое окно "Мастер созданий макета отчета"
После этого на вкладке Макет отчета (.NET Razor) будет сгенерирован код шаблона таблицы (рис. 13). Для публикации отчета необходимо нажать на кнопку Сохранить – Опубликовать.

Рис. 13. Вкладка "Макет отчета (.NET Razor)"
На рис. 14 представлен внешний вид данного отчета в веб-приложении.

Рис. 14. Отчет в веб-приложении
Данные в таблице могут быть отсортированы, сгруппированы, может быть изменено количество отображаемых в таблице данных и др.. Подробнее о настройке таблицы данных см. соответствующий раздел справки.
Внимание!
Для СУБД Oracle сортировка и/или группировка данных в таблице недоступна по колонкам с типом Строка.
|
Следует отметить, что настройки отображения таблицы сохраняются индивидуально для каждого пользователя. В случае изменения отчета в Дизайнере, все пользовательские настройки будут сброшены.
См. также: