Структура отчетов, форм, реестров

Ключевым отличием отчетов (форм) от реестров является то, что в отчете в каждой клетке может быть свой объект Системы (в том числе вычисленный в процессе построения отчета), а в реестре каждая строка - это один существующий объект.

Принцип построения отчетов и форм

Для построения отчета или формы необходимо сначала задать структуру его строк и столбцов.

Заголовки строк и столбцов могут быть трех типов:

  • Источник данных – показатель, значение которого должно выводиться в ячейке отчета.
  • Фильтры – условия отбора объектов для включения в отчет.
  • Оформительские заголовки – заголовки отчета, которые не влияют на содержимое соответствующих ячеек (только в конструкторе).

В Системе возможно создание как простых отчетов, так и отчетов со сложной древовидной структурой. Во втором случае каждая ветка дерева будет порождать отдельную строку или столбец.

У каждой ячейки отчета должен быть только один источник данных. Источники данных для отчета могут располагаться либо только в заголовках строк, либо только в заголовках столбцов отчета. Количество источников данных в отчете не ограничено.

В простейшем случае в каждой ячейке отчета будет выводиться значение, полученное следующим образом: объекты Системы отбираются согласно источнику и фильтрам; после этого должен остаться один объект, у которого определен источник, значение источника будет выведено в ячейку отчета. Если в результате отбора объектов с помощью фильтров получилось более одного объекта, подходящего для вывода в одну ячейку, то в этой ячейке возникает расслоение отчета (ячейка будет окрашена в оранжевый цвет). При клике по ней левой кнопкой мыши можно узнать подробную информацию.

Описание способов устранения расслоений см. в подразделе Расслоения.

_images/16.png

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

Ситуация, когда в ячейку попадает ровно два объекта – виртуальный и реальный, является исключением из расслоения. В Системе данная ситуация воспринимается как корректировка значения. В таком случае ячейка окрашивается не в оранжевый, а в желтый цвет, и при наведении курсора на нее появляется всплывающая подсказка о том, что значение было откорректировано, и информация о вычисленном значении.

_images/17.png

В случае, если вычисленное и откорректированное значения совпадают, то ячейка будет окрашена в бледно-желтый цвет.

_images/18.png

Процедура формирования форм аналогична процедуре формирования отчета.

Динамические отчеты

В Системе существует возможность построения динамических отчетов (отчетов, количество строк в которых зависит от существующих в Системе данных). Такие отчеты необходимы, например, если неизвестно для каких конкретно значений аналитических признаков нужно построить таблицу, и нужно показать все те, для которых есть значения.

Для построения динамического отчета необходимо оставить заголовки строк пустыми, а все источники и фильтры разместить только в заголовках столбцов или во внешних фильтрах отчета. При этом из фильтров нельзя построить иерархическую структуру, если в ней нет источника.

Логику расчета динамического отчета можно представить следующим образом:

  1. Взять все заголовки столбцов, в которых нет источника (то есть столбцы-фильтры).
  2. Для них строятся все возможные сочетания значений.
  3. Для каждого сочетания вычисляются значения заголовков с источниками.
  4. Если ни для одного из заголовков с источником нет значений для такого набора фильтров (либо если у источника включено «Не учитывать при пропуске пустых»), то такой набор признаков не отображается.
  5. Если значение хотя бы одного заголовка с источником посчиталось, то в отчете появляется строка с таким набором признаков и соответствующими значениями источников.

В динамических отчетах можно сделать группировку строк, отметив «группировочный» в заголовке-фильтре. Например, если есть два показателя (два столбца-фильтра в отчете) - «Бренд» и «Модель», по которым перечисляются все товары в магазине (Apple iPhone 5, Apple iPhone SE, Apple iPhone 10 и Samsung Galaxy S, Galaxy Fold, Galaxy Note), то для того, чтобы не повторять название бренда при каждом товаре, следует сделать источник «Бренд» группировочным, и под него свернутся все принадлежащие этому бренду модели.

_images/282.png

Динамический отчет автоматически пропускает пустые строки, т.е. показывает только те значения признаков, для которых есть хотя бы одно значение в его строке. Существуют показатели, которые есть для всех значений. К ним относятся, например, расчетные показатели. Для того, чтобы не учитывать их при построении, следует поставить галочку в настройках «Не учитывать при пропуске пустых строк». Настройки находятся в левом верхнем углу окна показателя, которое вызывается нажатием на шестеренку около его названия в заголовках. Необходимо нажать на шестеренку и проставить галочку «Не учитывать при пропуске пустых строк».

_images/62.png

Принцип построения реестра

Реестры представляют собой перечни объектов, удовлетворяющих определенным условиям. В реестрах предусмотрены только заголовки столбцов и внешние фильтры, но нет заголовков строк. Каждой строке в реестре соответствует один объект.

Заголовки столбцов могут быть двух типов:

  • Источники - показатель, значение которого выводится в ячейке отчета.
  • Оформительские - отображаются в заголовках отчета, но не влияют на содержимое соответствующих ячеек (только в конструкторе).

При построении реестра формируется запрос в Систему вида «выбрать все объекты, для которых определены указанные показатели-источники и соблюдаются условия, указанные во внешних фильтрах». При построении реестра отображаются все данные, которые есть в Системе по данному запросу.

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

Источники в реестрах могут быть обязательными и необязательными.

По умолчанию все источники обязательны для заполнения. Это значит, что если у какого-то объекта не определен один из обязательных показателей-источников, он не будет выведен в реестре. При вводе данных через реестр строка не будет сохранена, если не будут заполнены все обязательные ячейки. При просмотре реестра все обязательные для заполнения столбцы отмечены красной звездочкой рядом с названием заголовка столбца.

Чтобы поле стало необязательным для заполнения, можно в настройках источника отметить галочкой «Может быть пустым» (тогда при просмотре реестра не появится красная звездочка «Обязательно для заполнения» рядом с названием заголовка столбца).

_images/214.png

В реестрах не может быть расслоений, т.к. если несколько объектов удовлетворяют условиям реестра, это порождает несколько строк в реестре.

Реестр из справочника

Для построения реестра из справочника необходимо в конструкторе реестра нажать на кнопку «Значение из справочника» или в аналитической панели в настройках (в верхнем меню страницы) выбрать «Из справочника», а затем в выпадающем списке выбрать справочник, по которому необходимо построить реестр. Тогда в реестре будут видны только объекты, принадлежащие указанному справочнику.

_images/67.png

В качестве источника данных необходимо выбрать показатель «Название». В этом столбце будут выводиться названия всех уже существующих в Системе элементов этого справочника. При необходимости добавить другие показатели – источники данных, которые необходимо определить для элементов справочника (поля справочника). Для того, чтобы можно было добавлять новые значения в реестр, необходимо установить для показателей флаг «Может быть пустым».

Все созданные через реестр элементы справочника будут отображаться при просмотре справочника по клику по его названию в списке всех справочников (Меню => «Справочники»).