SharePoint 2007 到 SharePoint 2010 迁移项目实战心得系列(三)

关于站点的介绍,大家可以参考本系列的第一篇文章。
首先描述一下问题:
  1.JavaScript 问题
     其实这不是一个SharePoint的问题,只是一个编程上的问题。
     前面说过了,BI站点有一个Filter的WebPart来过滤用户的Profile数据,给页面上其它的WebPart,报表使用。这个WebPart是用C#写的。用JavaScrip把读到的Profile信息显示到DropDown List或者一个树中。由于我们升级过程中重新做了MasterPage,导致JavaScript显示树控件的时候定位出现差错,所以要修改JavaScript。但是由于这个WebPart的开发者把JavaScript内嵌到C#的Code里的,所以要修改WebPart的Code。重新编译后再部署到服务器上。
 由于客户对在服务器上部署DLL的策略非常严格,要CodeReview,测试等等。所以导致一个小小的JavaScript的修改会变的很麻烦。浪费了很多的时间和精力。
     所以在此提醒大家,在写Code的时候,尽量把Server端代码和Client端代码分开。例如JavaScript代码,没必要编译到DLL上。可以放到Site的Library中。这样就避免了不必要的麻烦。
  2.Reporting Service 展现方式问题
     这个是一个SharePoint/Reporting Service问题。
     BI站点有很多的Reporting Service的报表。Reporting Service是用的SharePoint集成方式。所有报表都存放在SharePoint的Document Library上。同过数据源文件连到数据库中,数据源即有关系数据库,也有Cube。报表的呈现方式是在Content Edit WebPart上加一个iframe,然后把报表的URL给它。这个方式在SharePoint 2007上运行一直很好。但是在2010上就出现了一个问题。
     报表的URL类似这样:http://sitename/_layouts/ReportServer/RSViewerPage.aspx?

rv:ParamMode=Hidden&rv:Toolbar=None&rv:HeaderArea=None&rv:RelativeReportUrl=/DocumentsLibraryName/Report

Name.rdl&rp:Parameter1=value1&rp:Parameter2=value2.但是在SharePoint2010里,Reporting Service报表的Render方式发生了变化。SharePoint 2007中Reporting Service默认是同步Render的,而在SharePoint2010中是异步Render的。所以报表会显示不出来。解决方法是加上AsyncRender=False这个参数。即:http://sitename/_layouts/ReportServer/RSViewerPage.aspx?

rv:ParamMode=Hidden&rv:AsyncRender=False&rv:Toolbar=None&rv:HeaderArea=None&rv:RelativeReportUrl=/DocumentsLibraryName/Report

Name.rdl&rp:Parameter1=value1&rp:Parameter2=value2.但是这样也有一个问题,就是如果报表里有Drill Down操作的话,也会出现报表无法Render的问题,还没有比较好的办法解决。

 

暂时只想到这里,肯定有遗漏,以后再补吧,抱歉!

posted on 2010-06-07 23:19 zhaojunqi 阅读(...) 评论(...) 编辑 收藏

导航