Виртуальная сущность на основе SQL-запроса
Добавлено: 27 мар 2018, 12:31
Очень хотелось бы иметь в Руководителе "виртуальные" сущности (ВС).
На странице конфигурации полей ВС должны поддерживаться все типы полей, как в обыкновенной сущности. Но сам SQL-запрос к базе генерируется не системой, а пишется администратором полностью вручную. Например, на странице "Общая конфигурация" в простом текстовом поле. Выбранные запросом поля подставляются в колонки ВС просто в порядке следования. Создание, редактирование и удаление записей для ВС не требуется (да и невозможно), доступно только чтение. Права доступа к самой ВС просто "Нет/Просмотр". Фильтры, поиск, сортировка в списке должны работать как для обычной сущности.
Зачем это нужно?
Во-первых, служит основой для создания очень сложных отчётов, которые должны содержать агрегированные данные из нескольких сущностей. Ответственность за корректность такой сборной ВС лежит полностью на администраторе. Сейчас вообще невозможно сделать отчёт, который бы содержал информацию из двух сущностей, доступны поля только одной.
Во-вторых, можно моделировать функционал, который ещё не реализован в текущей версии системы. Поскольку ВС только отображает данные, которые и так уже лежат в таблицах сущностей, то поломать систему не получится.
Возможно ли такое реализовать?
На странице конфигурации полей ВС должны поддерживаться все типы полей, как в обыкновенной сущности. Но сам SQL-запрос к базе генерируется не системой, а пишется администратором полностью вручную. Например, на странице "Общая конфигурация" в простом текстовом поле. Выбранные запросом поля подставляются в колонки ВС просто в порядке следования. Создание, редактирование и удаление записей для ВС не требуется (да и невозможно), доступно только чтение. Права доступа к самой ВС просто "Нет/Просмотр". Фильтры, поиск, сортировка в списке должны работать как для обычной сущности.
Зачем это нужно?
Во-первых, служит основой для создания очень сложных отчётов, которые должны содержать агрегированные данные из нескольких сущностей. Ответственность за корректность такой сборной ВС лежит полностью на администраторе. Сейчас вообще невозможно сделать отчёт, который бы содержал информацию из двух сущностей, доступны поля только одной.
Во-вторых, можно моделировать функционал, который ещё не реализован в текущей версии системы. Поскольку ВС только отображает данные, которые и так уже лежат в таблицах сущностей, то поломать систему не получится.
Возможно ли такое реализовать?