Поделиться через


Использование встроенных функций отчета и статистических функций в выражениях (службы Reporting Services)

Службы Reporting Services предоставляют встроенные функции, которые можно использовать в выражениях для вычисления статистических данных в наборах данных, областях данных и группах, а также получения других значений данных, таких как первое или последнее значение на странице отчета. Статистическая функция по умолчанию для числовых полей — функция SUM. Чтобы выбрать другую функцию, в диалоговом окне Выражение в области Общие функции выберите категорию Статистические.

Поскольку данные отчета и макет отчета объединяются во время выполнения, обработчик отчета определяет область по умолчанию для каждой ссылки на функцию в выражении. Область по умолчанию может быть набором данных, областью данных, группой табликса (родительской, дочерней, смежной или рекурсивной), пересечением строки табликса и группы столбца или группой диаграммы (ряд, категория, значение). Для большинства функций при вызове можно также указать область, отличную от области по умолчанию. Чтобы определить допустимые области для функции, см. раздел справки по конкретной функции. Примеры см. в разделе Вычисление итогов и другие статистические вычисления (службы Reporting Services).

В следующей таблице перечислены категории встроенных функций, поддерживаемых в службах Reporting Services:

  • Вычисление агрегатов

  • Вычисление текущих значений

  • Получение числа строк

  • Получение основанных на сортировке значений

  • Получение серверных агрегатов

  • Получение уровня рекурсии

  • Тестирование области

Основные сведения об области

В службах Reporting Services термин «область» может означать разные основные понятия в зависимости от контекста. В следующем списке приводятся эти понятия.

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

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

    • Именованная область может быть именем набора данных, области данных или группы.

    • Область по умолчанию зависит от свойства элемента отчета, вычисляемого обработчиком отчета. Например, область по умолчанию для ячейки табликса в области данных с группами строк и столбцов — это самая удаленная внутренняя группа строк и столбцов, к которой принадлежит ячейка. Областью по умолчанию для ячейки таблицы, не содержащей групп, является группа сведений. В области конструктора область данных табликса предоставляет визуальные элементы, которые можно использовать для определения доступных областей ячеек. На панелях групп, находящихся сверху и сбоку от области данных табликса, отображаются строки и столбцы, принадлежащие группе. Если ячейка выбрана, признаки групп показывают самые дальние внутренние активные группы, к которым принадлежит ячейка. Дополнительные сведения см. в разделе Работа с областями данных табликса.

      Для текстового поля в области конструктора не существует области по умолчанию. Необходимо указать имя используемого набора, например =First(Fields!Sales.Value,"Dataset1").

      При вызове встроенной функции и указании именованной области проверьте раздел справки для этой функции, чтобы узнать, какие области являются допустимыми. Например, для функции Sum можно указать область по умолчанию или включающую область.

Основные сведения о включающих областях

Следующие области расположены в порядке вложения от внешней (высшей) к внутренней (низшей), рядом описывается, какие данные они представляют:

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

  • Область данных   Задает данные из области данных после применения к ним фильтрации и выражений сортировки. При вычислении агрегатов для областей данных групповые фильтры не используются.

  • Группы строк и столбцов   Данные, получаемые после применения выражений группы и фильтров группы к родительской группе и дочерним группам. Для идентификации вложенности области каждая родительская группа содержит дочернюю группу.

  • Вложенные области данных   Определяют данные для вложенной области данных в контексте ячейки, к которой они добавляются после применения фильтра вложенной области данных и выражений сортировки.

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

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

ПримечаниеПримечание

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

Критерии фильтра

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

Вычисление агрегатов

Для вычисления сводных значений для набора ненулевых числовых данных в области по умолчанию или именованной области используются следующие встроенные функции. Все данные, используемые для вычисления статистической функции, должны иметь одинаковый тип данных. Воспользуйтесь для преобразования различных числовых типов к единому типу данных функциями преобразования CInt, CDbl, CDec и другими функциями преобразования. Дополнительные сведения см. в разделе Функции преобразования типов.

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

Функция

Описание

Avg

Возвращает среднее значение всех числовых значений, отличных от NULL, заданных выражением, вычисляемым для данной области.

Count

Возвращает количество значений, отличных от NULL, определяемое выражением, вычисляемым в контексте данной области.

CountDistinct

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

Max

Возвращает максимальное значение всех числовых значений, отличных от NULL, заданных выражением, вычисляемым в контексте данной области. Можно использовать для задания максимального значения оси диаграммы при управлении масштабом.

Min

Возвращает минимальное значение всех числовых значений, отличных от NULL, заданных выражением, вычисляемым в контексте данной области. Можно использовать для задания минимального значения оси диаграммы при управлении масштабом.

StDev

Возвращает стандартное отклонение всех числовых значений, отличных от NULL, заданных выражением, вычисляемым для данной области.

StDevP

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

Sum

Возвращает сумму всех числовых значений, отличных от NULL, заданных выражением, вычисляемым для данной области.

Var

Возвращает дисперсию всех числовых значений, отличных от NULL, заданных выражением, вычисляемым для данной области.

VarP

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

Вычисление текущих значений

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

Функция

Описание

RowNumber

Возвращает текущее количество всех строк в указанной области. Функция RowNumber начинает счет с 1, а не с 0.

RunningValue

Возвращает текущий агрегат всех числовых значений, отличных от NULL, заданных выражением, вычисляемым для данной области.

Получение числа строк

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

Функция

Описание

CountRows

Возвращает число строк в указанной области, включая строки, содержащие значение NULL.

Получение основанных на сортировке значений

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

Функция

Описание

First

Возвращает первое значение указанного выражения для заданной области.

Last

Возвращает последнее значение указанного выражения для заданной области.

Previous

Возвращает значение или заданное статистическое вычисление для предыдущего экземпляра элемента внутри заданной области.

Получение серверных агрегатов

Следующая встроенная функция получает пользовательские агрегаты из поставщика данных. Например, при использовании источника данных типа служб Analysis Services можно получить агрегаты, вычисляемые на сервере источника данных и используемые в заголовке группы.

Функция

Описание

Aggregate

Возвращает пользовательские статистические данные заданного выражения, как определено поставщиком данных.

Тестирование области

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

Функция

Описание

InScope

Указывает, входит ли текущий экземпляр элемента в пределы указанной области действия.

Получение уровня рекурсии

Следующая встроенная функция получает текущий уровень при обработке рекурсивной иерархии. Чтобы управлять уровнем отступа визуальной иерархии для рекурсивной группы, используйте результат этой функции вместе со свойством Padding в текстовом поле. Дополнительные сведения см. в разделе Создание групп рекурсивной иерархии (службы Reporting Services).

Функция

Описание

Level

Возвращает текущий уровень глубины в рекурсивной иерархии.