Я пытаюсь использовать SSRS в ситуации с несколькими арендаторами. Базовой версией, которую мы хотим поддержать, является SQL Server 2008, но если R2 необходим, мы можем быть в порядке.Как добавить встроенный источник данных в RDL в коде C#?
В настоящее время я использую конечную точку ReportingService2005.asmx, которая, как представляется, раскрывает класс ReportService2005SoapClient (хотя все образцы, похоже, показывают класс ReportingService2005).
Когда мы запускаем отчет, я хочу сделать копию этого отчета с сервера, добавить встроенный источник данных, указать наборы данных для этого источника данных и затем запустить отчет.
я получил, насколько:
получение RDL с сервера
модификации XML, чтобы добавить DataSource
указывая наборы данных, чтобы указать на новый источник данных
... но когда я пытаюсь "Crea teReport»Я получаю следующее сообщение об ошибке:
System.Web.Services.Protocols.SoapException: The dataset ‘DataSet1’ refers to the data source “mydatasource_LOCAL”, which does not exist.
at Microsoft.ReportingServices.Library.ReportingService2005Impl.ExecuteBatch(Guid batchId)
at Microsoft.ReportingServices.WebServer.ReportingService2005.ExecuteBatch()
я добавил набор данных в RDL, она выглядит так же, как когда я добавить один в конструкторе. Однако, я полагаю, что что-то нужно добавить на сервер? Что мне не хватает?
(В стороне, я знаю, что MS Dynamics поддерживает многозначные SSRS в одном экземпляре, но я не вижу никакой информации о том, как они это сделали. Если у них есть какой-либо код или что-то, что они разделяют, кто-то может указать мне на это быть прекрасным.)
Я не вижу, чтобы он развертывал источник данных, когда я использую встроенный источник данных в отчете, только когда я создаю общие источники данных. Я дважды проверю, чтобы быть уверенным. (Да, используя эту конечную точку, потому что нам нужно поддерживать SQL Server 2008 и выше). – PilotBob
Он появляется, когда я развертываю отчет, источник данных создается в dman reportmanager. Он имеет идентификатор элемента, соответствующий отчету. Но как я могу получить элемент отчета, который я не могу создать inorder для создания созданного источника? – PilotBob
Кажется, мне не пришлось даже модифицировать RDL. Просто клонируйте отчет, а затем используйте SetItemDataSources, который создал встроенный источник данных для отчета. – PilotBob