Как отобразить данные в заголовке отчета служб отчетов SQL 2005?

В готовых отчетах SSRS данные не отображаются в заголовке страницы. Есть ли способ получить эти данные, чтобы показать?

7 ответов

Решение

Одна из вещей, которую я хочу в своих отчетах, - иметь хорошие заголовки для моих отчетов. Мне нравится иметь логотип и параметры отчета пользователя вместе с другими данными, чтобы показать больше информации о бизнес-потребностях, которые отчет должен прояснить. Одна из вещей, которую Microsoft SQL Server 2005 Reporting Services не может сделать изначально, - это отображение данных из набора данных в заголовке. Этот пост объяснит, как обойти это и насколько это легко.

Создайте проект сервера отчетов в разделе "Проекты бизнес-аналитики" и назовите его AdventureWorksLTReports. Я использую образец базы данных AdventureWorksLT от CodePlex.

http://www.cloudsocket.com/images/image-thumb.png

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

http://www.cloudsocket.com/images/image-thumb1.png

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

http://www.cloudsocket.com/images/image-thumb2.png

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

  • Дата заказа
  • Номер заказа на продажу
  • Компания
  • Продавец
  • Итого к оплате

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

http://www.cloudsocket.com/images/image-thumb3.png

В теле отчета поместите TextBox для каждого поля данных, необходимого в заголовке страницы. В видимости для каждого TextBox выберите True для скрытого. Это будет заполнитель для данных, необходимых в заголовке страницы.

http://www.cloudsocket.com/images/image-thumb4.png

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

http://www.cloudsocket.com/images/image-thumb5.png

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

= ReportItems!.Value

Ваш отчет должен выглядеть примерно так:

http://www.cloudsocket.com/images/image-thumb6.png

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

http://www.cloudsocket.com/images/image-thumb7.png

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

Я думаю, что лучшим вариантом является создание внутреннего параметра со значением по умолчанию для поля набора данных, которое вы хотите показать.

Этот метод не сработает, если ваш отчет охватывает несколько страниц, вместо этого используйте запрашиваемые параметры и установите для текстового поля значение =Parameters!Name.Value согласно этой статье.

Вот два возможных обходных пути:

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

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

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

Я сделал это, потому что, если вы используете параметр solution и данные не возвращаются в рассматриваемое поле, вместо пустой таблицы отображается текст "Параметр отсутствует значение". Я считал, что этот текст может запутать пользователей (так как параметр даже не виден).

Я с Орионом Адрианом здесь. Параметры отчета - путь.

Другие вопросы по тегам