Переключение отчета SSRS на основе выбранных параметров

#reporting-services

#службы отчетов

Вопрос:

У меня есть два отчета, которые более или менее сильно отличаются друг от друга, но имеют один и тот же список параметров. Требование состоит в том, чтобы эти отчеты были в одном и том же решении, и пользователи должны иметь возможность переключаться с одного отчета на другой в зависимости от выбранного параметра Boolean. Теперь у меня есть написанное выражение, но куда оно должно идти в теле отчета, я не знаю. Мое выражение:

 =Switch(Parameters!Tax.Value = True,"Tax Todate Summary",Parameters!Tax.Value = False,"Line of Action(s)")
  

Ответ №1:

Я бы создал «Навигационный отчет». Это будет иметь тот же список параметров, включая этот логический параметр.

Тело отчета будет содержать два объекта вложенного отчета для двух фактических отчетов. Я бы выложил их один над другим. Они будут единственными объектами на панели разработки этого отчета.

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

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

1. не повлияет ли этот метод на производительность? В том, что оба отчета будут выполняться? Если создание пользовательской страницы приглашения ssrs невозможно, то навигационный отчет звучит неплохо. Однако я не буду сразу загружать оба отчета, а скорее дам ссылки на два отчета в навигационном отчете. Таким образом, вы избежите загрузки обоих отчетов. Тот факт, что список параметров один и тот же, не обязательно означает, что запросы, используемые для заполнения отчетов, совпадают. В каждом отчете также могут быть размещены ссылки для ссылки на другой отчет, чтобы пользователю не нужно было возвращаться к отчету навигации.

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

3. Производительность является проблемой для этого метода или реализации. Теперь мы ищем лучший способ сделать это. Есть идеи, ребята?

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