Обзор процесса создания приложений. Моделирование данных отчета, страница 9

Итоговый столбец помещается в группу с соответствующим уровнем агрегирования. Если необходим промежуточный результат для группы записей, то итоговый столбец вместе со столбцом разбиения размещается в группе разбиения. Если же нужен конечный результат для всех записей отчета, итоговый столбец размещается вне какой-либо группы, как это было показано в предыдущей главе. Для создания большинства итоговых столбцов можно применять Report Wizard, как в случае создания отчета "Вес овощных блюд" в предыдущей главе. Если требуется создать итоговый столбец для конкретной группы разбиения, a Report Wizard этого сделать не позволяет, то сначала нужно создать группу разбиения, щелкнуть мышью на инструменте Summary Column в палитре инструментов Data Model Editor, а затем на группе разбиения. Если дважды щелкнуть мышью на появившемся столбце, на экране отобразится палитра свойств итогового столбца.

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

Свойство Source (источник) позволяет выбрать источник данных, над которым будет выполняться операция агрегирования. При этом автоматически отображаются все подходящие столбцы группы записей, имеющей более низкий уровень, чем группа разбиения. Так, для столбца SumВесPerБлюдо группы G_Блюдо (см. отчет "Вес овощных блюд") отображается Вес. Для столбца конечного результата, расположенного вне групп, предлагаются все возможные столбцы: Вес и SumВесPerБлюдо.

Свойство Reset At (сбрасывать по) указывает Developer/2000, откуда начинать агрегирование. Рассмотрим, как получить промежуточный результат для некоторой группы разбиения, суммирующий значения всех строк этой группы. В свойстве Reset At нужно указать группу разбиения. Это информирует Developer/2000 о необходимости сбросить значение в нуль перед началом работы со следующей группой. Для итогового столбца группы разбиения возможными точками сброса являются эта группа разбиения. Page (страница) и Report (отчет). Если выбрать группу разбиения (G_Блюдо для отчета "Вес овощных блюд"), то Developer/2000 будет вычислять значение начиная с первой записи экземпляра группы разбиения, а затем сбросит значение в нуль перед началом работы со следующей группой. Результатом явится промежуточное значение для экземпляра группы. При выборе Page значение сбрасывается перед каждой страницей - и в том случае, если группа размещена на нескольких страницах, и в том, если на одной странице находится несколько групп. Этот режим обычно используется тогда, когда есть причины производить постраничные вычисления. При выборе Report значение устанавливается в нуль в начале отчета и после этого не сбрасывается, при этом вычисляется текущий итог для каждого экземпляра группы. Текущий итог (running total) не сбрасывается в начале каждой группы записей, а накапливается в процессе всего отчета. Такой результат может быть получен при установлении свойства Reset At в Report для итогового столбца, который выводится после группы разбиения.

Свойство Compute At (вычислять по) сообщает Developer/2000, на каком уровне определять значение функции агрегирования "процент от общего итога". Значением этого свойства может также быть Report, Page или группа разбиения. Это позволяет менять общий итог, на основании которого Developer/2000 вычисляет процентное отношение. Задание Report означает определение процента от общего итога отчета, Page - процента от общего итога страницы, а группы разбиения - процента от общего итога этой группы. Последний вариант полезен тогда, когда существует несколько групп разбиения и отображаются проценты от общих итогов для подгрупп большой группы записей.

Множественные запросы и связи данных