这里把前段时间的MOSS和BI的项目做个总结和整理。希望能对大家有所借鉴!
MOSS整合BI 第一篇文章中的方法比较简单,这个是我们应用的效果比较好的结构。
系统整体结构: MOSS + BI
前台提供过滤数据,传递给后台,BI接受过滤参数实现报表呈现。
实现方法:
请参考并安装SQL Server Reporting Services 2008 Integration with SharePoint Add-in!
2. 参数传递与报表呈现
2.1 自定义一个filter webpart(注意:与database中的数据同步!).
2.2 在同一页面增加一个content editor webpart, 内容增加一个装载report的容器IFRAME控件!
2.3 在同一页面中再增加一个content editor webpart. 其中放置相应的操作的javascript内容。
javascript作用: 构造报表的URL(所构造成的形式参考1.),并更新2.2中的IFRAME的SRC属性。
3. BI部分,将生成的报表发布到site的list中。
Sample code:
IFrame:
<iframe id="iframe_id" name="iframe_name"></iframe>
JS:
var baseReportUrl = '../_layouts/ReportServer/RSViewerPage.aspx?' + displayParameters + '&' + displayToolbar + '&' + displayHeaderArea + '&rv:RelativeReportUrl=/Documents/';
var baseReportURL = baseReportUrl + 'report.rdl';
var baseReportURLwithParameters = baseReportURL ;
var reportURLwithParameters = baseReportURLwithParameters + '&rp:parameter1=' + parameter1_value;
document.getElementById('iframe_id').src = reportURLwithParameters;
如果需要在报表字段中增加掉转或其他逻辑,需要定义一个和报表定义的javascript方法名字相同的javascript方法,然后在这个js中进行重写!
BI reports:
所有的报表发布到documet list里!
基本构成就是这样!对于一个页面多个报表,造成显示性能缓慢的问题,可以通过一个报表包含多个subreport的形式来完成。
这个结构主要适用于静态报表的展现,但是如果有用户自定义报表的功能,也可使用,不过在报表开发方面需要加入大量的判断逻辑,当不同的条件显示不同的报表。如果更深入一点,用户需要自定义报表显示列的话,这个就不适用了!仅供参考!