法国总部有一个Supplier KPI的小网站,需要把它迁移到我们的Sharepoint服务器上。
一开始我以为是简单的文档库,那么在Windows Explorer模式下面之间拷贝粘贴就可以搞定。举一反三的思考下,如果是带有自定义字段的文档库呢?如何迁移?如果是列表等其他Sharepoint库怎么迁移呢?这个心里一点底都没有了。
我开始在Sharepoint找这方面的设置。在库设置里面找到了一个选项Save this document library as teample.看来,库的设置是可以另存下来。另外,在这个设置的下半部分还找到了一个选项,叫Include All Content。找到关键的东西了。既然能保存结构,还能把内容都一起保存起来。那么是不是可以把这个Template拷贝到另外一个Sharepoint网站上,再Intergrate进去,不就可以实现迁移了嘛。
开始实践,首先检查了下,Template文件都是保存在顶级网站_catalog/list目录下面,OK,是个物理的文件,把它拷贝出来,放到了目标网站对应目录下面去。
现在发现在目标网站的可创建的模板库下出现我的Template,测试创建了一个,可以顺利使用。
后来跟法国联系上,他们做Supplier KPI,用的是Survey,也是可以套用这个原理的,很快就做好了迁移。
前两天早上上班的时候发现,我有一些Sharepoint的文档库主页显示不出来了。页面上还能看到主框架页面标题,但是下面的New,Action菜单,文档列表都不见了。开始以为是系统异常,但是今天又发现了一例,那么可以确认,不是sharepoint系统出问题,而是另有其他原因。
简单的检查一下,知道这个页面背后是AllItems.aspx,那么应该是这个AllItems.aspx出问题了。
我没有对文档库做过定制,那么其他文档库的AllItems.aspx是不是可以拷贝过来呢。把这个出问题的跟另外一个正常的做了对比,都是2.58KB,好像没什么区别。拷贝覆盖过后,还是一样的问题,看来这条路是行不通了。
用Sharepoint Designer打开AllItems.aspx。发现了问题所在,右下的菜单那个Webpart似乎被屏蔽了,Designer也提醒我要打开这个Webpart。看了一下这个Webpart的属性,其中Close the webpart这个选项被勾起来了,原来问题出在这里。
开启Webpart,保存,Check In文件,刷新网页,文档库能正常显示了。
http://beta.joycode.com/kaneboy/Default.aspx
2.收集资料集
http://www.cnblogs.com/mmneo/articles/52974.html
3.choral
http://blog.joycode.com/choral/category/1279.aspx
4.microsoft sharepoint blog
http://sharepoint.microsoft.com/blogs/GetThePoint/default.aspx
http://www.microsoft.com/sharepoint/learning/books.mspx
5.MOSS 开发资料 form msotec
http://www.msotec.com/topic.aspx?topicid=1131
6.导航菜单管理器
http://www.msotec.com/topic.aspx?topicid=277
7.sps.cnblogs.com
http://sps.cnblogs.com/
8.MOSS开发技术讨论群 2007/12/13 kaneboy 主讲
http://www.msotec.net/poc/mossdev/default.aspx
9.自动生成MOSS Query的SQL语句的工具
http://www.cnblogs.com/MinSentinel/archive/2007/11/27/973801.html
10.母版与content page
http://www.cnblogs.com/puke/archive/2007/11/16/961349.html
11.sharepoint爱好者
http://www.sharepoint.org.cn
http://babyt.cnblogs.com/
最近一段收到的反馈中,有几位是问到在应用程序中使用水晶报表时,大数据量情况下因为等待时间过长,给用户的感觉不好
所以想增加一个进度条,给用户一个比较直观的印象。
本文针对此问题而生,但是并没有一个像样的解决方法,因为到目前可能还没有很好的方法,或者是我们所不不知道。
所以提出来,希望得到更多有价值的信息
在CR9的浏览控件上是有进度条的,

但是到了CR10以后就不见了踪影,当然,大家需要的进度条也不是这个进度条,而是希望自己在程序上能完全控制的一个进度条。
不过我觉得这个是太容易实现的。只是如果界面上本来就有,可能感觉会好一先。
按照现在的水晶报表模型
CR目前没提供输出的接口,那么我们就不能知道当前的进度如何。
但是有一点是肯定的,如果在同样的数据量下(假设数据量很大),那么如果报表内使用的公式(或者组、样式效果)越多,那么报表展现就越慢。
而对同一报表,数据量越大就越慢,这个似乎是废话,呵呵。
不过我想说得是,如果我们现在不能实现进度条,那么我们让报表尽可能的快一点:
(请参考http://www.cnblogs.com/babyt/archive/2008/01/12/1036450.html中的第2条)
1)返回尽可能少的记录数给报表,
我们比较常见的是明细表,有时候用户不限定条件,哗啦上来选个一年的,几百万条数据就出来了。
但是这个有什么意义呢,用户不会打印也不会去一页一页看,但是这个操作足以让你的程序崩溃了。
水晶报表呈现时会生成临时文件,几百万条数据可能生成几G的临时文件
所以策略一就是限定用户的操作范围。有时候用户不理解,他可能会觉得一年和一个月有什么区别呢?所以要沟通好。
再来就是做统计的,那么百万条的记录就不算什么了。但是你不可以把百万条记录都丢到水晶报表里去让报表去做统计!
这个时候有两种方法,一是使用中间汇总表,这个是很常见的,我们平时可能有日报、周报、月报、季报、年报以及多年度的数据比较分析
如果直接从明细表里取那么不仅仅是程序受不了的问题了,所以使用汇总表压缩数据是最好的解决方法。
平时在系统压力较小的时候使用数据库的计划任务完成这个操作即可
另外一种方法就是使用SQL命令在数据库端完成汇总,而不是放到数据库里去,当然,这种情况水晶报表的压力虽然小了,但是数据库的压力却大了。
2) 如果使用了上述方法返回的数据仍然很多,那么就尽量减少报表中的公式(特别是针对详细资料节数据的效果)、样式
好了,说完了,这个,我们再来说说这个进度条。
一般来说在程序中使用水晶报表有四个步骤。
1) 从数据库抽取数据到记录集
2)加载水晶报表模板
3)把记录集赋给水晶报表对象
4)放到浏览器CRViewer呈现
那么我们可以大致估计一下各个步骤的占用时间,完成一个步骤后进度条就进多少。(注意,是估计,而不是确切的时间...)
开始的时候CRViewer设置为隐藏,等全部加载结束后再把CRViewer显示出来。
于是重要的问题就是如何判断报表再CRViewer中呈现完毕
再CRViewer中提供了一个isbusy属性,返回的是true/false。
所以要不断监视这个属性的返回值,来判断加载的结束。
当然,我个人认为这种方法其实不咋的,可能实现起来也不方便,所以还是让他快点显示出来比较好

