Как мне отобразить данные в заголовке отчета служб SQL 2005 Reporting Services?
-
09-06-2019 - |
Вопрос
Готовые отчеты SSRS не могут содержать данные, отображаемые в заголовке страницы.Есть ли способ показать эти данные?
Решение
Одна из вещей, которую я хочу иметь в своих отчетах, - это красивые заголовки для моих отчетов.Мне нравится иметь логотип и параметры отчета пользователя наряду с другими данными для отображения, чтобы предоставить больше информации для бизнес-нужд, которые отчет должен прояснить.Одна из вещей, которую службы 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
Я создал хранимую процедуру, которая возвращает данные для Заказа на продажу, которые будут представлены в заголовке страницы.Я покажу следующую информацию о Заказе на продажу в Заголовке Страницы:
- Дата заказа
- Номер заказа на продажу
- Компания
- Специалист по продажам
- Общая сумма задолженности
Я создаю текстовое поле для каждого из моих полей данных в Заголовке страницы вместе с текстовым полем для соответствующей метки.Не изменяйте Выражение в текстовых полях, в которые вы хотите ввести данные заказа на продажу.
альтернативный текст http://www.cloudsocket.com/images/image-thumb3.png
В Тексте отчета поместите текстовое поле для каждого необходимого поля данных в Заголовке Страницы.В поле Видимость для каждого текстового поля выберите значение True для Скрытого.Это будет заполнитель для необходимых данных в заголовке страницы.
альтернативный текст http://www.cloudsocket.com/images/image-thumb4.png
Ваш отчет должен выглядеть так, как показано на скриншоте ниже.
альтернативный текст http://www.cloudsocket.com/images/image-thumb5.png
Последний и самый важный шаг - это ссылка на Скрытое текстовое поле в текстовых полях, расположенных в Заголовке страницы.Мы используем следующее выражение для ссылки на необходимые текстовые поля:
=Объекты отчета!.Значение
Теперь ваш отчет должен выглядеть примерно следующим образом:
альтернативный текст http://www.cloudsocket.com/images/image-thumb6.png
Теперь в заголовке вашего предварительного просмотра отчета должны быть указаны данные заголовка заказа на продажу.
альтернативный текст http://www.cloudsocket.com/images/image-thumb7.png
Другие советы
Вы должны сделать это с помощью параметров.Добавьте параметр для каждого фрагмента данных, который вы хотели бы отобразить, затем установите для параметра значение Скрытый.Затем установите значение по умолчанию равным "Из запроса" и установите для Dataset и поля Value соответствующие значения.
Я думаю, что лучшим вариантом является создание внутреннего параметра со значением по умолчанию в поле набора данных, который вы хотите показать.
Вот два возможных варианта обходные пути:
Вы можете поместить поле databound в текстовое поле отчета в виде скрытого текстового поля, а затем в заголовке поместить другое текстовое поле со значением, указывающим на то, которое скрыто в теле отчета.
Попробуйте использовать параметры отчета для хранения данных и используйте эти параметры для доступа к данным в заголовке.
Этот метод не сработает, если ваш отчет охватывает несколько страниц, используйте вместо этого запрашиваемые параметры и установите значение текстового поля равным =Parameters!Name .Значение согласно эта статья.
Я здесь с Орионом Адрианом.Параметры отчета - это правильный путь.
Я хотел показать поле, общее для всех возвращаемых строк, в заголовке, и для этого сценария я выбрал решение связанной таблицы (поместив таблицу, содержащую поле, в тело и связав текстовое поле в заголовке с этой таблицей).
Я сделал это, потому что, если вы используете решение с параметром и в соответствующее поле не возвращаются данные, вместо просто пустой таблицы отображается текст "Параметру не хватает значения".Я полагал, что этот текст собьет пользователей с толку (поскольку параметр даже не виден).