Вычисление средневзвешенной функции
В данном руководстве показано, как рассчитать функцию средневзвешенного значения в отчете, например, рассчитать средневзвешенную цену единиц на складе в каждой категории продуктов: Сумма (Цена за единицу * Количество единиц на складе) / Сумма (Единиц на складе) .
Использование сводных функции отчета
Вы можете рассчитать средневзвешенное значение, указав выражение элемента управления с помощью нескольких встроенных функций сводки отчета.
- Откройте существующий отчет или создайте новый.
- Привяжите отчет к источнику данных.
Добавьте секцию Заголовок группы, выберите раздел Поля группировки и добавьте новое групповое поле, чтобы сгруппировать данные отчета по нужному полю данных.
Добавьте необходимые поля данных и настройте отчет.
Добавьте в отчет секцию Подвал группы и поместите элемент управления Текст на эту секцию, чтобы отобразить итоговый результат.
Разверните раздел Сводка и установите для свойства Диапазон расчета значение Группа.
Нажмите на кнопку
свойства Текст. В открывшемся Редакторе выражений вы можете указать пользовательское выражение с несколькими встроенными функциями из меню Функции | Сводка. Сводные функции отчета начинаются с префикса sum, чтобы их можно было отличить от агрегатных функций.
Вы также можете использовать свойство Строка формата текста элемента управления для форматирования значения сводки
Использование агрегатной функции
Вы можете создать вычисляемое поле и использовать в его выражении стандартную агрегатную функцию для оценки средневзвешенного значения.
- Откройте существующий отчет или создайте новый.
- Привяжите отчет к источнику данных.
Создайте новое вычисляемое поле и задайте имя поля.
Нажмите кнопку Правка для вычисляемого поля и нажмите кнопку
свойства Выражение.
Чтобы построить допустимое агрегатное выражение, используйте следующий формат, состоящий из четырех частей.
[<Коллекция>][<Условие>].<Агрегат>(<Выражение>)
- <Коллекция> - указывает коллекцию, для которой должно быть рассчитано агрегированное значение. Это может быть имя отношения в случае отношения master-detail или имя свойства коллекции, предоставляемого целевым классом. Например, [CategoriesProducts][[CategoryId]>5].Count(). Пустые скобки [] указывают на корневую коллекцию.
- <Условие> - указывает условие, определяющее, какие записи должны участвовать в вычислении агрегатной функции. Чтобы получить агрегированное значение для всех записей, удалите это логическое предложение вместе с квадратными скобками (например, [].Count()).
- <Агрегат> - указывает одну из доступных агрегатных функций.
<Выражение> - указывает выражение, оценивающее значения, которые будут использоваться для выполнения вычислений. Например, [][[CategoryID] > 5].Sum([UnitPrice]*[Quantity]). Функция Count не требует значений полей для подсчета записей, поэтому оставьте для этой функции круглые скобки пустыми.
Вы можете обратиться к обрабатываемой в данный момент группе с помощью оператора обхода родительских отношений ('^'). Это позволяет вам вычислять агрегаты внутри групп, используя следующие выражения: [][[^.CategoryID] == [CategoryID]].Sum([UnitPrice]).
Дополнительные сведения см. в разделе Синтаксис выражений.
- Добавьте необходимые элементы управления на секцию Детализации и настройте их содержимое.