Построитель отчетов 3.0 со списком SharePoint в качестве источника данных с использованием относительного URL-адреса для списка - PullRequest
2 голосов
/ 12 апреля 2011

Я использую Report Builder 3.0 для создания отчета для использования в SharePoint 2010. SQL Server 2008 R2 является серверной частью со службами отчетов в режиме интеграции с SharePoint. Одна из полезных функций построителя отчетов 3.0 - использование списка SharePoint в качестве источника данных, настройка которого очень проста - достаточно указать URL-адрес для списка SharePoint в качестве строки подключения, и это работает.

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

http://mainsite/subsite1/lists/mylist

... Мне нужно указать что-то вроде этого:

mylist

... так что, когда я упаковываю его как шаблон сайта и создаю новый сайт на основе этого шаблона, отчет будет работать со списком нового сайта, а не указывать на URL-адрес списка исходного сайта. Я пробовал "mylist", "lists / mylist" и т. Д. - все, кроме указания subsite1 / lists / mylist - но пока ничего не получалось, кроме полного URL.

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

Редактировать: Я неправильно понял, что нужно для перехода в строку подключения источника данных. Это не URL-адрес списка , а URL-адрес сайта , который указывается в строке подключения. Однако концепция вопроса остается в силе: необходимо динамически задавать строку подключения источника данных, которая указывает на список SharePoint.

1 Ответ

2 голосов
/ 13 апреля 2011

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

http://mainsite/subsite1/

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

=Replace(Globals!ReportFolder, "Reports", "")

Отчет находится в библиотеке с именем «Отчеты», поэтому Globals! ReportFolder возвращает:

http://mainsite/subsite1/Reports

Затем функция Replace () принимаетчасть строки «Отчеты», и в результате получается строка подключения, которую я хотел.

На что обратить внимание:

  • Вы не можете проверить выражение, пока выстроим отчет.Мне пришлось жестко закодировать URL сайта в строку подключения, чтобы дизайнер мог заполнять список списков при создании набора данных на основе этого источника данных.В противном случае он не отображает доступные списки, и вам придется вводить все вручную.После разработки отчета я изменил строку подключения на выражение, и при развертывании это сработало.
  • При тестировании обязательно обновляйте представление браузера, а не маленький значок обновления на панели задач отчета.Похоже, что встроенное обновление отчета только захватывает новые данные, но использует файл rdl, который у него уже есть, в то время как обновление браузера вынуждает его получать как последнюю копию rdl, так и самые последние данные.Это, вероятно, говорит само за себя, но на несколько минут это вызвало у меня некоторое замешательство, когда казалось, что изменения в моем дизайне не имеют никакого значения, так что, надеюсь, это поможет другим не пережить то же самое замешательство.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...