Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Отчеты к базам данных для пользователей: Microsoft Reporting Services 2000
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

4. Reporting Services: формулы (выражения), глобальные коллекции, параметры, фильтрация записей

4.1 Основы работы с формулами (выражениями)

Выражения (expressions) в Reporting Services SQL Server 2000, поля (fields), формулы условного форматирования (conditional formatting), функции (functions), возможность работы с классами пространств имен .NET

Как таковых, формул в Reporting Services нет. Вместо них используются выражения (expressions), понятие которых несколько шире. Например, все поля, которые добавляются в отчет из источника, должны добавляться как выражения.

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

·        поля (Fields) - поля из базы данных. Выглядят например, как =Fields!Country.Value. Коллекция Fields - одна из пяти глобальных коллекций (Global Collections), о которых будет рассказано ниже;

·        формулы условного форматирования (conditional formatting). Пример: = IIF(Me.Value < 1, "Red", "Black"). Расшифровывается так: если значение данной ячейки меньше единицы, то окрасить его в красный цвет, если нет - то сделать черным. То, что ожидает получить от нас в качестве возвращаемого значения функция условного форматирования, часто можно посмотреть в окне Edit Expression под контейнером Constants, хотя набор допустимых значений там оказывается не всегда. Если набора значений там нет, то придется обращаться к документации. Настроить условное форматирование для любого свойства можно, если в окне Properties (под Solution Explorer) выбрать нужное свойство и в списке значений выбрать <Expression...>.

·        функции (functions). Функции, которые можно использовать в отчете, например, агрегатные. Синтаксис большинства агрегатных функций выглядит так: Function(Expression, Scope), например: Sum(Fields!SalesAmout.Value, "Category"). При этом Expression - это выражение, к которому применяется группировка (чаще всего числовое поле из Data Set), а Scope определяет, какие строки из Details будут обрабатываться функцией. Агрегаты вычисляются для групп записей, у которых общее значение в Scope. Если значение Scope явно не определено, то:

  • если выражение помещено в Group Header или Footer, будет использоваться текущий уровень группировки;
  • если выражение помещено в Details, то будет использован самый нижний уровень группировки.
  • если в Scope помещено имя уровня группировки (оно должно быть помещено как строковое значение - в двойных кавычках - и с соблюдением регистра), то используются все записи с тем же самым значением для данного уровня группировки.

Набор агрегатных функций - вполне обычный. В добавление к тому, что знакомо по Crystal Reports, имеются также:

·        First и Last (просто первое и последнее значение);

·        RowNumber - возвращает номер записи в Data Set, возвращается на 1, если Scope изменяется (началась новая группа). Можно использовать, например, чтобы каждую запись в группе (отчете) покрасить в свой цвет;

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

На первый взгляд, по количеству встроенных функций Reporting Services явно уступают Crystal Reports, но на самом деле это не так. В вашем распоряжении - все колоссальное богатство пространств имен .NET, тысячи классов и их методов. В Reporting Services напрямую доступны классы из пространств имен Microsoft.VisualBasic, System.Convert, and System.Math, а также, если обращаться по полному пути (например, System.Collections.ArrayList) все остальные сборки .NET. Но для работы с ними необходимо разбираться в пространствах имен .NET и уметь разбираться в ручном написании кода XML.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru