首页 文章

使用SharePoint列表作为数据源的Report Builder 3.0使用列表的相对URL

提问于
浏览
2

我正在使用Report Builder 3.0创建在SharePoint 2010中使用的报表.SQL Server 2008 R2是SharePoint集成模式下Reporting Services的后端 . Report Builder 3.0的一个很酷的功能是使用SharePoint列表作为数据源,其设置非常简单 - 只需将其作为连接字符串的SharePoint列表的URL提供即可 .

我最终希望将此站点打包为包含其中的报告的站点模板,这意味着URL需要是相对的而不是绝对的 . 所以例如代替这个:

http://mainsite/subsite1/lists/mylist

......我需要指定这样的东西:

mylist

...因此,当我将其打包为站点模板并基于该模板创建新站点时,报告将使用新站点的列表,而不是指向原始站点的列表URL . 我已经尝试了“mylist”,“lists / mylist”等等 - 所有这些都没有指定subsite1 / lists / mylist - 但是除了完整的URL之外什么都没有 .

是否可以使用相对URL或其他方法,以便每次基于此网站模板创建新网站时都不必在报告中手动更改连接字符串?

编辑:我误解了数据源's connection string. It'中的内容,而不是 list 的URL,而是连接字符串中的 site 的URL . 问题的概念仍然有效 - 需要动态设置指向SharePoint列表的数据源的连接字符串 .

1 回答

  • 2

    在与一些同事进行头脑风暴后,我们发现了这一点 . 关键是使用表达式作为连接字符串 . 使用我的原始示例,目标是得到这个:

    http://mainsite/subsite1/
    

    ...在连接字符串中但没有对其进行硬编码 - 根据报告的位置使其动态化,以便将报告与网站的其余部分一起打包为网站模板 . 我最终得到的表达是:

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

    该报告位于名为“Reports”的库中,因此Globals!ReportFolder返回:

    http://mainsite/subsite1/Reports
    

    然后,Replace()函数取出字符串的“Reports”部分,结果是我想要的连接字符串 .

    需要注意的事项:

    • 您可以't test the expression while you'重新构建报告 . 我不得不将站点URL硬编码到连接字符串中,以便设计人员在基于该数据源创建数据集时填充列表列表 . 否则它不显示可用列表,您必须手动键入所有内容 . 在设计报告之后,我将连接字符串更改为表达式,并在部署时工作 .

    • 测试时确保刷新浏览器视图而不是报告中的小刷新图标's task bar. Seems like the report' s内置刷新只抓取新数据但使用已有的rdl文件,而刷新浏览器则强制它获取最新信息rdl的副本以及最新数据 . 那个看起来像我的设计变化有所不同,所以希望这将有助于其他人不会经历同样的混乱 .

相关问题