Ссылки в вопросе и комментариях иногда относятся к отчетам, не относящимся к SSRS: синтаксис [subreport].[Report]![MyFieldName]
или [Reports]![YourReportName]![YourSubReportName]![TheValueFromTheSubReportYouWantToReference]
не используется в SSRS. Однако он используется при разработке отчетов MS Access, как указывает Оджеффри в обсуждении, на которое вы ссылаетесь.
Не существует общего метода доступа к данным в подотчете. Модель SSRS заключается в том, что обрабатываются данные родительского отчета, обрабатываются данные вложенного отчета, отображаются вложенные отчеты, результаты возвращаются родительскому элементу, затем отображается родительский отчет, включая вложенный отчет, если необходимо. Единственные данные, передаваемые между ними, - это параметры, которые передаются в подотчет, а визуализированные выходные данные передаются обратно родительскому объекту. Вы увидите, что данные, переданные от родителя, должны быть здесь в качестве параметров отчета: https://technet.microsoft.com/en-us/library/ms160348(v=sql.100).aspx
Все параметры, которые требуются для вложенного отчета, должны быть включены в список параметров. Если обязательный параметр отсутствует, подотчет отображается некорректно в основном отчете.
Для цитирования авторитетных источников: Это обсуждение подводит итог:
Нет, ссылка на элемент отчета во вложенном отчете не допускается.
Но это немного устарело, есть и более свежий обсуждение обходных путей, предоставленное сотрудником Microsoft и MVP MS BI:
Вам нужно будет заменить элемент вложенного отчета областью данных, например списком, таблицей или матрицей, чтобы получить нужную ссылку, которую вы ищете.
[Переход к другому сообщению] ...
Теперь, похоже, вы хотите рассчитать разницу между основным отчетом и подотчетом. Кроме того, поскольку у них другой источник данных, вы не можете использовать вложенную таблицу / матрицу / список, верно? Если это так, я могу придумать один обходной путь - передать параметр во вспомогательный отчет и вычислить итоговую / промежуточную сумму в дополнительном отчете. Я имею в виду, создать несколько скрытых / внутренних параметров, передать значения из основного отчета в подотчет через параметры, а затем вычислить там общий / промежуточный итог.
Ответ Джероена на связанный вопрос указывает направление, в котором я бы пошел: использовать «Общий набор данных» и включить кеширование, если набор данных выполняется медленно. Затем одно и то же выполнение набора данных можно использовать для родительского и подотчетов. Это может изменить использование параметров: они обычно перемещаются из запроса SQL в фильтр набора данных в отчете.
Но с помощью Lookup
функции, представленной в SSRS 2008R2, вы можете получить очень гибкий с объединениями на уровне отчета между наборами данных.
Детали того, как я это спроектирую, во многом зависят от того, сколько других данных нужно передавать туда и обратно, и насколько аккуратно запросы для отчетов могут быть связаны вместе.
16.10.2013