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


Занятие 2. Добавление параметров для фильтрации по дате

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

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

Это занятие посвящено добавлению параметров запроса @StartDate и @EndDate. Параметры отчета с учетом регистра StartDate и EndDate (без признака параметра запроса @) уже автоматически созданы. Обратите внимание, что поставщики данных используют различные признаки параметров запроса. Например, поставщик данных Oracle использует двоеточие (:) вместо символа «коммерческое at» (@).

В качестве типа данных параметров будет установлен DateTime. При этом можно будет увидеть, что элемент управления «календарь» появляется вместе с текстовым полем параметра на панели инструментов. Будут заданы значения для параметров по умолчанию, чтобы отчет мог выполняться автоматически. В итоге будет создан параметр отчета DayofWeek, не привязанный к параметру запроса. Этот параметр отчета будет использован для фильтрации данных после их получения из источника данных.

Добавление в запрос параметров типа date

  1. В представлении «Данные» выберите набор данных AdventureWorks.

  2. Замените существующий запрос следующим:

    SELECT S.OrderDate, S.SalesOrderNumber, S.TotalDue, C.FirstName, 
        C.LastName
    FROM  HumanResources.Employee E INNER JOIN
          Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
          Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    WHERE (S.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    -- Accurate Enddate would be '20020228 23:59:59.997'
    
    Aa337401.note(ru-ru,SQL.90).gifПримечание.
    SQL Server хранит данные типа DATETIME с точностью до 1/300 сек. Дополнительные сведения см. в разделе Дата и время (Transact-SQL). Если ожидаемые после фильтрации с помощью переменной типа DateTime данные не были получены, возможно, потребуется указать время в параметре запроса более точно.

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

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

  4. В столбце Значение параметра введите значение для параметра @StartDate. Например, 20010101.

  5. В столбце Значение параметра введите значение для параметра @EndDate. Например, 20030101.

  6. Нажмите кнопку ОК. Параметры отчета StartDate и EndDate будут созданы автоматически, их типом данных по умолчанию будет String. Далее будет показано, как сменить тип данных этих параметров на DateTime.

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

  8. Убедитесь, что в списке Параметры выделен параметр StartDate. Из раскрывающегося списка Тип данных выберите тип DateTime.

  9. В списке Параметры выберите EndDate. Из раскрывающегося списка Тип данных выберите тип DateTime.

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

  11. Нажмите кнопку Просмотр. Оба параметра, StartDate и EndDate, появятся на панели инструментов вместе с элементом управления «календарь». Элементы управления «календарь» появляются автоматически, если параметр имеет тип данных DateTime, а список допустимых значений не определен. Список допустимых значений представляется в виде раскрывающегося списка значений, а не элемента управления «календарь».

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

  12. В текстовом поле параметра StartDate введите дату 2001-01-01.

  13. В текстовом поле параметра EndDate введите дату 2003-01-01.

  14. Нажмите кнопку Просмотр отчета. Отчет содержит только те записи, даты которых попадают в рамки значений параметров отчета.

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

Задание значений по умолчанию для параметров даты

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

  2. Убедитесь, что в списке Параметры выделен параметр StartDate.

  3. В разделе «Значения по умолчанию» выберите Без запроса и введите 2001-01-01. Для выхода из этого текстового поля нажмите клавишу TAB.

  4. В списке Параметры выберите EndDate.

  5. В разделе «Значения по умолчанию» выберите Без запроса и введите 2003-01-01. Для выхода из этого текстового поля нажмите клавишу TAB.

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

  7. Нажмите кнопку Просмотр. Отчет будет выполнен незамедлительно, поскольку для всех параметров были заданы значения по умолчанию.

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

Добавление в запрос нового поля для фильтрации

  1. В представлении «Данные» выберите набор данных AdventureWorks.

  2. В запросе определите дополнительный вычисляемый столбец для дня недели, в который была осуществлена продажа, добавив в инструкцию SELECT следующую команду: DATENAME(weekday, S.OrderDate) as Weekday.

    Замените существующий запрос следующим:

    SELECT S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday,
          S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName
    FROM  HumanResources.Employee E INNER JOIN
          Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
          Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    WHERE (S.OrderDate BETWEEN (@StartDate) AND (@EndDate))
    
  3. Нажмите кнопку «Выполнить» (!). Появится новый столбец с меткой Weekday, содержащий названия дней недели.

  4. В окне «Набор данных» убедитесь, что Weekday является полем.

    Aa337401.note(ru-ru,SQL.90).gifПримечание.
    Если окно «Набор данных» невидимо, в меню Вид выберите Наборы данных.

    Теперь в набор данных добавлено дополнительное поле Weekday. При создании параметра отчета вручную и привязки его к этому полю пользователи могут отфильтровать данные отчета по дню недели.

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

  1. Перейдите на вкладку Макет.

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

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

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

  5. В текстовом поле Запрос введите День недели для фильтрации:

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

  7. В списке Доступные значения выберите Без запроса. Оставьте значения пустыми.

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

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

Задание фильтра таблицы с выражением параметра

  1. В режиме разметки выберите таблицу. У таблицы появится серый контур.

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

  3. Щелкните вкладку Фильтры.

  4. В столбце Выражение из раскрывающегося списка выберите =Fields!Weekday.Value.

  5. Убедитесь, что в качестве параметра Оператор установлен знак равенства (=).

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

  7. В области глобальных переменных щелкните Параметры. В соседней области появится текущий список параметров.

  8. Дважды щелкните DayoftheWeek. Выражение параметра успешно добавлено в текстовое поле выражения. Теперь в текстовом поле «Выражение» появится следующее выражение: =Parameters!DayoftheWeek.Value.

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

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

    Теперь фильтр для таблицы установлен для сравнения значения в поле Weekday со значением параметра DayoftheWeek. Например, при вводе на панели инструментов значения Воскресенье для параметра DayoftheWeek обработчик отчетов обрабатывает только те строки таблицы, где в поле Weekday указано значение Воскресенье.

  11. Нажмите кнопку Просмотр. Отчет запускается автоматически, поскольку все параметры имеют значения по умолчанию. Таблица отображает только значения, произошедшие во временном интервале с StartDate по EndDate и выпадающие на воскресенье.

  12. Следующая необязательная процедура посвящена добавлению форматирования в заголовок таблицы.

(Необязательно) Настройка цвета фона и шрифта для строки заголовка таблицы

  1. Перейдите на вкладку Макет.

  2. Щелкните таблицу. Появятся маркеры таблицы.

  3. Щелкните строку заголовка таблицы. На панели инструментов макета нажмите кнопку Цвет фона. Откроется диалоговое окно Выбор цвета.

  4. На вкладке Веб выберите Темно-красный.

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

    Далее выберите цвет шрифта.

  6. На панели инструментов макета нажмите кнопку Цвет изображения. Откроется диалоговое окно Выбор цвета.

  7. На вкладке Веб выберите Белый.

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

  9. Нажмите кнопку «Предварительный просмотр». Таблица отобразится с цветами, выбранными для ее строки заголовка.

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

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

См. также

Задачи

Занятие 1. Создание проекта сервера отчетов для учебника по параметрам

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

Формат ISO 8601

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

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