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


Занятие 3. Изменение исходной сортировки и интерактивная сортировка с помощью параметров

Добавления: 17 июля 2006 г.

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

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

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

На этом занятии будут добавлены оба типа сортировок. Будет добавлен параметр InitialSort и создано выражение сортировки для столбца таблицы TotalDue, чтобы первоначально отсортировать группы таблицы по статистической общей сумме. Также будет создан параметр SortBy, который позволит выбрать, выполнять сортировку по названию магазина или по количеству заказов на продажу для каждого магазина в столбце таблицы Store. Потребуется добавить кнопку интерактивной сортировки в столбец Store и создать выражение сортировки, значение которого зависит от значения SortBy.

Открытие проекта сервера отчетов Advanced Parameters Tutorial

  1. В среде SQL Server Business Intelligence Development Studio откройте проект сервера отчетов Advanced Parameters Tutorial, если это еще не было сделано.

  2. В обозревателе решений дважды щелкните отчет Resellers Worldwide. Отчет откроется в режиме разметки.

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

Добавление значения числа групп в заголовок группы

  1. Выберите текстовое поле Store в первой строке заголовка группы таблицы.

  2. Замените выражение =Fields!Store.Value на следующее:

    =Fields!Store.Value & vbCrLf & vbTab & "(" & 
    Count(Fields!SalesOrderNumber.Value, "table1_Store") & ")"
    
  3. (Не обязательно) Нажмите кнопку Предварительный просмотр — название магазина и количество продаж в каждом магазине будут отображены на отдельной строке в первой строке заголовка группы.

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

Добавление нового параметра отчета

  1. В меню Отчет выберите команду Параметры отчета. Откроется диалоговое окно Параметры отчета.

  2. Нажмите кнопку Добавить. Будет создан новый параметр со значениями по умолчанию.

  3. В разделе Свойства в текстовом поле Имя введите UserSortBy. Убедитесь, что поле типа данных содержит значение String.

  4. В поле Запрос введите Как следует отсортировать группу таблиц?.

  5. Снимите флажок Разрешить пустое значение.

  6. В разделе Доступные значения выберите Без запроса. Используйте следующую таблицу для ввода значений.

    Метка Значение

    Название магазина

    Name

    Количество продаж в каждом магазине

    Number

  7. В разделе Значения по умолчанию выберите Без запроса. В текстовом поле введите Name.

  8. Нажмите кнопку ОК.

В следующей процедуре будет добавлен элемент управления UserSort (также известный как интерактивная сортировка) в текстовое поле заголовка группы, в котором отображается название магазина и количество продаж. Чтобы использовать значение параметра отчета UserSortBy, необходимо создать выражение для элемента управления. При предварительном просмотре отчета на этом столбце будет отображена кнопка сортировки. Нажатие кнопки сортировки позволяет переключаться между сортировкой по возрастанию и по убыванию для поля, определенного этим параметром.

Добавление кнопки интерактивной сортировки для группы

  1. В строке заголовка таблицы щелкните правой кнопкой мыши первое текстовое поле под названием textbox2 и выберите команду Свойства. Содержимым этого текстового поля является строка «Магазин». Откроется диалоговое окно Свойства текстового поля.

  2. Перейдите на вкладку Интерактивная сортировка.

    Настройка свойств на вкладке Интерактивная сортировка аналогична настройке свойств элемента управления UserSort для текстового поля.

  3. Установите флажок Добавить возможность интерактивной сортировки по этому текстовому полю.

  4. Нажмите кнопку Выражение (Fx). Откроется диалоговое окно Изменение выражения.

  5. Вставьте в область выражений следующее выражение:

    =IIF(Parameters!UserSortBy.Value="Name",Fields!Store.Value,
    Count(Fields!SalesOrderNumber.Value, "table1_Store"))
    

    Если вставить это выражение непосредственно в текстовое поле, будет получена только первая строка выражения.

  6. Нажмите кнопку ОК.

  7. В разделе «Область или группирование данных для сортировки» выберите Выберите область или группирование данных. Из раскрывающегося списка выберите table1. Это область данных таблицы.

  8. В разделе «Вычислить выражение сортировки в этой области» щелкните Выберите область или группирование данных. Из раскрывающегося списка выберите table1_Store. Это группирование магазинов в таблице.

    Если параметр UserSortBy установлен в значение Name, результатом этого выражения является значение Fields!Store.Value и сортировка групп таблиц выполняется так же, как на предыдущем занятии — в алфавитном порядке по названию магазина. Если параметр UserSortBy не имеет значение Name, группы таблицы будут отсортированы по количеству продаж в группе в порядке по возрастанию.

  9. Нажмите кнопку Просмотр.

    Теперь в столбце Store есть кнопка интерактивной сортировки. Исходным порядком сортировки является значение по умолчанию для сортировки группы таблицы. При первом нажатии кнопки интерактивной сортировки столбец сортируется в соответствии со значением параметра UserSortBy. Последующие нажатия кнопки интерактивной сортировки позволяют переключать сортировку по возрастанию и убыванию.

  10. В раскрывающемся списке измените значение параметра UserSortBy на Количество продаж в каждом магазине. Нажмите кнопку Просмотр отчета.

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

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

Добавление нового параметра отчета для параметризированной сортировки

  1. В меню Отчет выберите команду Параметры отчета. Откроется диалоговое окно Параметры отчета.

  2. Нажмите кнопку Добавить. Будет создан новый параметр со значениями по умолчанию.

  3. В разделе Свойства в текстовом поле Имя введите InitialSort. Убедитесь, что поле типа данных содержит значение String.

  4. В поле Запрос введите Как следует отсортировать строки подробностей таблицы?.

  5. Снимите флажок Разрешить пустое значение.

  6. В разделе Доступные значения выберите Без запроса. Используйте следующую таблицу для ввода значений.

    Метка Значение

    Total due

    TotalDue

    Sales order date

    OrderDate

  7. В разделе Значения по умолчанию выберите Без запроса. В текстовом поле введите TotalDue.

  8. Нажмите кнопку ОК.

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

Добавление выражения сортировки в строку подробностей таблицы

  1. Выберите таблицу. Щелкните правой кнопкой мыши границу таблицы и выберите команду Свойства. Откроется диалоговое окно Свойства таблицы.

  2. Перейдите на вкладку Сортировка.

  3. В раскрывающемся списке в текстовом поле Выражение выберите <Выражение>. Откроется диалоговое окно Изменение выражения.

  4. Замените знак равенства (=) на следующее:

    =IIF(InStr(Parameters!InitialSort.Value,"TotalDue")>0,Fields!TotalDue.Value,Fields!OrderDate.Value)
    

    Будет выполнена проверка параметра на наличие строкового значения "TotalDue". Если значение обнаружено, порядок сортировки определяется полем TotalDue, иначе используется поле OrderDate. Направление сортировки, По возрастанию или По убыванию, не основано на выражении, таким образом, значение, заданное на вкладке Сортировка, применяется к полю, указанному в вычисленном выражении.

  5. Нажмите кнопку ОК.

  6. (Не обязательно) Измените значение для параметра InitialSort и нажмите Просмотр отчета. Разверните узел для магазина Efficient Cycling. Убедитесь, что строки подробностей отсортированы в соответствии с настройкой параметра InitialSort.

Следующие шаги

Добавление двух параметров для управления кнопкой интерактивной сортировки в столбце Store (по названию магазина или по количеству продаж) и контроля над способом сортировки строк подробностей таблицы (по дате заказа или по общей сумме) успешно завершено. На следующем занятии рассматривается управление исходным состоянием углубленной детализации отчета при помощи скрытого логического параметра. См. раздел Занятие 4. Добавление логического параметра для управления начальным состоянием детализации.

См. также

Другие ресурсы

Работа с параметрами в службах Reporting Services
Сортировка данных в отчете

Справка и поддержка

Получение помощи по SQL Server 2005