Отчет SSRS — найдите табликс, который в настоящее время отображается

#reporting-services #ssrs-tablix

Вопрос:

Я пытаюсь решить следующую проблему. У меня в отчете есть два табликса. У каждого есть свой собственный набор данных. Я хочу показывать разные сообщения в нижнем колонтитуле на основе отображаемого табликса. Каждая таблица может занимать разное количество страниц. Есть идеи? Я специально ориентируюсь на экспорт слов. То, что было предложено в ответе Алана, не работает для слова экспорт.

Спасибо

Комментарии:

1. Похоже, экспорт в word (также PDF) работает не так, как ожидалось для нижних колонтитулов (ошибка)

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

Ответ №1:

Если я правильно понял ваш вопрос, вы можете сделать это с помощью переменной отчета и текстового поля.

Ниже приведен макет, который я использовал. Я раскрасил некоторые области просто для ясности.

введите описание изображения здесь

Две таблицы содержат примеры «людей» и примеры «адресов», это метки, которые я покажу в нижнем колонтитуле соответствующих страниц.

Сначала вам нужно добавить переменную отчета, поэтому щелкните правой кнопкой мыши пустую область отчета и выберите пункт «Свойства отчета», нажмите «переменные» вкладку и добавить заново новую переменную LastTablix , установите это значение на что угодно, на твой первый нижний колонтитул, чтобы быть, в моем случае «народ». Убедитесь, что вы СНЯЛИ флажок Только для чтения

введите описание изображения здесь

Теперь добавьте нижний колонтитул в свой отчет (желтый в моем примере) и добавьте текстовое поле в нижний колонтитул (зеленый в моем примере).

Установите для выражения текстового поля значение

 =Variables!LastTablix.Value 
 

Убедитесь, что имя написано правильно, оно чувствительно к регистру.

Если вы запустите отчет сейчас, вы увидите «Люди» в каждом нижнем колонтитуле, теперь нам просто нужен способ изменить его.

Затем добавьте новое текстовое поле (например, красное). Установите выражение этого текстового поля равным

 =Variables!LastTablix.SetValue("Addresses")
 

Затем на втором табликсе установите для взлома/прерывания страницы значение Start

Если вы запустите отчет сейчас, вы увидите, как нижний колонтитул изменится на текст в приведенном выше выражении.

Теперь вам просто нужно сделать красное текстовое поле как можно меньше, установить цвет фона и шрифта на ничего/белый, и все должно быть так. Примечание: вы не можете установить для текстового поля значение Hidden=True, так как текстовое поле не будет отображаться и выражение для обновления переменной не будет выполняться.

Комментарии:

1. Да, отличная идея. Я пробовал это, к сожалению, это не работает, когда отчет экспортируется в Word. Word не оценивает переменную отчета для каждого нижнего колонтитула.

2. Ах, вы не упомянули об экспорте в своем вопросе. Вероятно, вам следует расширить свой вопрос и точно объяснить, что вы хотите сделать.