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