2011-03-17 5 views
1

У меня есть элемент управления reportviewer (Microsoft.ReportViewer.WebForms) на моей странице. Во всех моих отчетах используется один источник данных. Я хочу, чтобы мои отчеты запускались в другой базе данных при запуске из моей среды UAT. Таким образом, расположение отчетов одинаковое, но данные поступают из другого db. Кажется, я не могу найти, как это делается, возможно ли это?Как изменить источник данных в элементе управления ReportViewer

EDIT: Это серверные отчеты на SQL Server. Я знаю, что вы можете установить набор данных программным образом, но я просто хочу, чтобы отчеты указывали на другой db и оставили остальную часть отчета неповрежденной. ТИА,

Джон

+0

Являются ли эти локальные отчеты или отчеты сервера? Пример: RDLC против полного SSRS – jfollas

+0

Вы хотите передать отчет строку подключения? Это может работать для отчетов, которые должны использовать разные базы данных или расположены на разных серверах. –

ответ

6

Вы хотите передать полную строку подключения к отчету в качестве параметра? Вы можете сделать это, но иногда SSRS становится смешно, и убедитесь, что вы удалить отчет с сервера, прежде чем развернуть новую копию, делая это ...

1. Сделать параметр - давайте назовем наш connectionStr. Сделайте это не пустым, не пустым, единственным выбором и текстом в качестве типа данных. В конце концов, вы захотите скрыть этот параметр, но для тестирования, пожалуйста, оставьте его видимым.

2. Таким образом, значение, которое вы будете использовать в качестве строки подключения ... (для тестирования я установить это по умолчанию для параметра, ни с чем поставить под имеющиеся значения раздела)
Источник данных = MySQLServerName; Initial Catalog = MyDatabaseName; Упорство Security Info = True; ID пользователя = MyUserNameForTheServer; Password = MyPasswordForTheServer; MultipleActiveResultSets = True

3. вы должны автоматическая учетная запись выполнения на сервере отчетов или вы получите это: счет без присмотра исполнения не определен. (RsInvalidDataSourceCredentialSetting).
http://msdn.microsoft.com/en-us/library/ms156302.aspx Я не могу предоставить более подробную информацию, потому что мой босс должен был сделать эту часть для меня.

4. В соответствии с вашими свойствами источника данных в SSRS ... проверьте встроенное соединение, выберите тип (мой только обычный MS SQL Server), для строки подключения откройте окно выражения и поместите: = Параметры! ConnectionStr .value, а затем нажмите учетные данные и убедитесь, что выбран последний параметр без учетных данных.

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

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

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

Если вы хотите, чтобы просто передать имя базы данных и все остальные тем же самое (имя сервера, имя пользователя, пароль), то просто установите параметр строки соединения, равный ваше имя базы данных и для использования значения выражения DataSource
="Data Source=MySQLServerName;Initial Catalog=" + Parameters!connectionString.value + ";Persist Security Info=True;User ID=MyUserNameForTheServer;Password=MyPasswordForTheServer;MultipleActiveResultSets=True"
Мне нужно было передать все это, и вы можете поиграть с настройками учетных данных - вы могли бы сохранить информацию о имени пользователя/пароле в нем для каждого отчета, чтобы учетная запись без участия пользователя не нужна.

+0

Ничего себе, я надеялся, что будет что-то более простое. Я попробую это. –

+1

+1, это работало как прелесть для меня. – Jeroen

Смежные вопросы