Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16497775
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:56:39

下载本文示例代码
  生成智能文档解决方案的涉及到的大多数工作包括建立一个Word或Excel文档,并把XML元素与它关联。实际上,你一般可以把已有的Word或Excel文档作为建立智能文档的基础。因为多数业务文档已经有了一定的结构,当你定义XML元素的时候仅仅需要对它进行形式化(formalize)和命名。  从开发者的角度看,该文档或电子表格是解决方案的基本UI。当用户编辑的时候,智能文档操作处理程序DLL定义了出现在该文档旁边的附加的UI。在可能的情况下,在建立智能文档的时候使用Word和Excel的下层能力,而不是在智能文档DLL中编写自定义代码是明智的。我的Excel进度表工作薄中的公式就演示了这一点。我希望在上一周的星期一得到状态报告,但是人们通常在星期一或星期四添加状态报告;在这以后是本周的星期一了。我不是编写一段C 代码实现这种操作,而是编写了Excel公式来压缩这个计算过程并把它放在工作表的一个单元中:IF(WEEKDAY(TODAY(),3)<2,TODAY()-(7 WEEKDAY(TODAY(),3)),TODAY()-WEEKDAY(TODAY(),3))  我简单地使用一个自己编写的从Excel工作薄中得到值的函数从该工作表单元中载入计算过的日期值。   开始  现在我们从建立一个Excel电子表格以跟踪软件进度表开始。注意,我假定你已经下载了示例代码,它包含了必要的支持文件。  启动微软Excel 2003并打开Project Schedule (Original).xls。这个电子表格与大多数Excel电子表格一样,已经有了一个结构。现在使用XSD文档(例子中是ScheduleSmartDocument.xsd)把一个XML大纲与这个结构关联。在Excel中,点击"数据"菜单下的"XML"并选择"XML源"。当"XML源"事务面板出现的时候,点击"工作薄映射"按钮并添加ScheduleSmartDocument.xsd文件。接着点击"确定"关闭"浏览"对话框,再次点击"确定"关闭"XML映射"对话框。图1显示了添加大纲后的Excel"XML源"事务面板。图1.XML源  为了建立映射,你必须把元素从XML大纲中拖到工作薄上。对于类似Project Name和Developer的元素,这是很简单的事情,只需要把该XML元素名称从"XML源"事务面板上拖动到包含相关数据的工作薄单元上(例如,把ProjectName拖动到A2上)。对于分层显示的重复的进度表数据项,可以通过选择数据项把该组拖动到标题行(A5)上。你可以通过选择"XML源"事务面板中特定的元素(例如Description)来确认映射关系;工作薄中相应的部分应该高亮度显示。把结果工作薄保存为Project Schedule (Mapped).xls。在示例中,我将建立单个电子表格,或者你可以把进度表保存为Excel工作薄模版。这样的话,你就简化了用户建立该文档的新副本的过程,每个新的副本都将成为一个Excel智能文档。zmbbs=1;共4页。 1 2 3 4 :   生成智能文档解决方案的涉及到的大多数工作包括建立一个Word或Excel文档,并把XML元素与它关联。实际上,你一般可以把已有的Word或Excel文档作为建立智能文档的基础。因为多数业务文档已经有了一定的结构,当你定义XML元素的时候仅仅需要对它进行形式化(formalize)和命名。  从开发者的角度看,该文档或电子表格是解决方案的基本UI。当用户编辑的时候,智能文档操作处理程序DLL定义了出现在该文档旁边的附加的UI。在可能的情况下,在建立智能文档的时候使用Word和Excel的下层能力,而不是在智能文档DLL中编写自定义代码是明智的。我的Excel进度表工作薄中的公式就演示了这一点。我希望在上一周的星期一得到状态报告,但是人们通常在星期一或星期四添加状态报告;在这以后是本周的星期一了。我不是编写一段C 代码实现这种操作,而是编写了Excel公式来压缩这个计算过程并把它放在工作表的一个单元中:IF(WEEKDAY(TODAY(),3)<2,TODAY()-(7 WEEKDAY(TODAY(),3)),TODAY()-WEEKDAY(TODAY(),3))  我简单地使用一个自己编写的从Excel工作薄中得到值的函数从该工作表单元中载入计算过的日期值。   开始  现在我们从建立一个Excel电子表格以跟踪软件进度表开始。注意,我假定你已经下载了示例代码,它包含了必要的支持文件。  启动微软Excel 2003并打开Project Schedule (Original).xls。这个电子表格与大多数Excel电子表格一样,已经有了一个结构。现在使用XSD文档(例子中是ScheduleSmartDocument.xsd)把一个XML大纲与这个结构关联。在Excel中,点击"数据"菜单下的"XML"并选择"XML源"。当"XML源"事务面板出现的时候,点击"工作薄映射"按钮并添加ScheduleSmartDocument.xsd文件。接着点击"确定"关闭"浏览"对话框,再次点击"确定"关闭"XML映射"对话框。图1显示了添加大纲后的Excel"XML源"事务面板。图1.XML源  为了建立映射,你必须把元素从XML大纲中拖到工作薄上。对于类似Project Name和Developer的元素,这是很简单的事情,只需要把该XML元素名称从"XML源"事务面板上拖动到包含相关数据的工作薄单元上(例如,把ProjectName拖动到A2上)。对于分层显示的重复的进度表数据项,可以通过选择数据项把该组拖动到标题行(A5)上。你可以通过选择"XML源"事务面板中特定的元素(例如Description)来确认映射关系;工作薄中相应的部分应该高亮度显示。把结果工作薄保存为Project Schedule (Mapped).xls。在示例中,我将建立单个电子表格,或者你可以把进度表保存为Excel工作薄模版。这样的话,你就简化了用户建立该文档的新副本的过程,每个新的副本都将成为一个Excel智能文档。zmbbs=1;共4页。 1 2 3 4 : 下载本文示例代码


用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三用C 和XML建立Office智能文档之三
阅读(138) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~