[UPDATE]
演讲内容:
Session 1 : Office2007客户端新特性体验
Office2007操作界面大尺度变革的背后,是以提升用户体验为核心的巨大进步。在这个时段里,我们将与您分享Office2007客户端使用中各种各样的新颖特性。
Session 2 : 如何开发定制Office2007
新的使用界面和新的文件格式给用户带来了很大便捷,也给微软合作伙伴带来了更多机会。在这个时段里,我们将为您介绍对于Office2007客户端开发的一些基础知识。
Session 3 : Office System的统一平台:SharePoint Server 2007
借助SharePoint,Office System成为了可集成客户端与服务器端,灵活构建企业信息平台的解决方案包。在这个时段里,我们将与您分享Office2007客户端与SharePoint服务器协同互动的精彩使用。
来参加的话,可以得到精美的小礼品,还有一些介绍新版Office2007的资料,而且是免费的!
=====================================================================
重出江湖的ZDNet中文社区将在2月4日下午两点在北京银网中心举行Office技术沙龙系列讲座的第一讲,我和Kaneboy也会参加这次活动,与其他参会者分享2007 Office System的相关知识。
点击这里免费在线报名注册!!
还等什么??

活动时间:2007年2月4日(星期日)下午14点
活动地点:CNET(中国)总部(海淀区知春路113号银网中心A座9层,大海会议室)
活动讲师:陈曦(微软MVP,SharePoint资深专家)
嘉宾讲师:涂曙光(微软中国有限公司专业解决方案部技术专家)
参加讲座的网友将获得精美纪念品,现场还将设有有奖互动的环节,惊喜等你来。

来自OTEC论坛的一个Tip:
在SharePoint2007种处理ItemAdding(或其他类似的同步事件)事件时,如何获取触发此事件的列表条目属性:
http://www.msotec.net/Forums/ShowThread.aspx?PostID=7118
另外,OTEC的yuxin找到的一个非常棒的关于SharePoint搜索的技巧网站:
http://wsssearch.com
为了测试,我在此环境里只安装了WSSv3.0,但创建站点后,搜索却出现了这样的问题:
搜索时报错:无法完成搜索,因为没有为索引器分配此网站。有关详细信息,请与管理员联系。
后来在Joel的网站上找到了fix
http://blogs.msdn.com/joelo/archive/2006/11/16/upgrading-from-wss-3-0-b2tr-to-rtm.aspx
解决步骤:
1、开始菜单--〉管理中心--〉SharePoint 3.0 管理中心
2、应用程序管理--〉内容数据库
3、点击那个数据库:“WSS_Content”
4、指定搜索服务器:
5、点击确定
6、搜索正常了:

我们知道,借助SharePoint解决方案包(SharePoint Solution Package),也就是后缀为WSP的文件,可以很轻松的帮我们把WebPart、事件处理程序、Feature等等部署到SharePoint网站上。Kaneboy的QuickPart就是用这种方式部署的。
这种WSP文件包的开发还是很麻烦的,不过别担心,Mark发布了一个解决方案包的VS模板,借助这个模板,可以比较轻松的创建自己的WSP包了。
在Office2007客户端的几个产品中,Word,Excel,PowerPoint的界面可以说是变化最大的:我们之前熟悉的菜单和工具栏不见了,取而代之的是"功能区"(英文为:Ribbon)

虽然,一开始总是觉得使用起来很奇怪,一些快捷的键盘操作都找不到了(Ribbon非常适合习惯用鼠标的用户,但喜欢用键盘的朋友就有些郁闷了)可还是要尊重产品组的研究成果,基于大量的统计数据可以得到如下结论:Ribbon使用户的使用速度得到了提高。
OK,言归正传,如果开发者希望在Ribbon中增加自己需要的选项卡呢?比如一个自动填表的按钮啊什么的。要怎么做呢?
Ribbon的自定义开发分为两种:
- 文档级别的自定义选项卡,也叫静态选项卡。这种自定义选项卡是绑定在一个特定的文档上的。比如,我们在"文档A"上创建了一个静态自定义的按钮,那么只有在打开文档A的时候,能看到这个按钮,而打开其他文档的时候,这个按钮不会出现。
- 应用程序级别的自定义选项卡,也叫动态选项卡。这种选项卡是通过Office插件加载上去的,安装了这个插件的计算机在打开Office程序的时候就可以使用这个选项卡,而不是像第一种,必须绑定在某个特定文档上。
这篇文章,先来介绍如何开发第一种选项卡。
以Word2007为例子:
1、首先,新建一个Word2007文档,在里面随便输入一些文字,并保存为"CustomRibbon.docx"。
2、关闭此文档,并将此文件名改为CustomRibbon.zip(新的Office文件格式均符合OpenXML的工业标准,其实就是一个zip包)
3、打开此zip包,创建一个新的文件夹叫CustomUI
4、在CustomUI文件夹里添加一个xml文件:LitwareRibbon.xml,这个文件用来说明新添加的选项卡的属性以及包括哪些控件。
此文件内容为:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab id="LitwareTab" label="Litware" visible="1">
<group id="LitwareGroup" label="Litware Tools" visible="1">
<button id="buttonGenerateNumber" label="Generate Number" onAction="GenerateNumber"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
可以看出来,这个XML定义了一个叫"Litware"的选项卡,其中有一个按钮叫Generate Number,点击时会触发一个"GenerateNumber"函数。
5、在[Content_Types].xml文件中的</Types>前添加一个element:
<Override PartName="/CustomUI/LitwareRibbon.xml" ContentType="application/xml"/>
6、在_rels文件夹下的.rels中的</RelationShips>前添加一个element:
<Relationship Id="rId8" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="CustomUI/LitwareRibbon.xml"/>
7、将这几个文件夹和文件重新打成一个zip包:CustomRibbon.zip
8、讲此zip包文件名改为CustomRibbon.docx
9、打开这个word文档,就可以看到新添加的这个选项卡了:

10、问题:如果需要在按下那个"Generate Number"按钮后执行一些操作怎么办?
答案:用VBA。
在Word2007中,默认的VBA编辑是关闭的,所以我们点击左上角的Office按钮,再选择其中的"Word选项",把"在功能区显示开发工具选项卡"前面的复选框挑上勾,确定后,就可以在Word的功能区中看到"开发工具"的选项卡。
11、将文档另存为"启用宏的Word文档",这时,此word文档的后缀会由docx变为docm。在Office2007中,后缀是x的文档将不会启用宏,而保护宏代码的文档都以m结尾。
12、点击"开发工具"选项卡,选择"Visual Basic"按钮,为此文档增加如下代码:
Public Sub GenerateNumber(control As Variant)
ActiveDocument.Range.InsertAfter ("我是老陈!")
End Sub
保存并关闭。

13、点击"Litware"选项卡,再点击其中的"Generate Number"按钮,刚刚写好的这段VBA代码就开始执行了。
