021_WORD文档分类管理插件
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
4 系统分析和设计
4.1 功能需求分析
Word是微软公司的Office系列办公组件之一,是目前世界上最流行的文字编辑软件,它无疑是现代办公中使用最多的字处理软件。现在已能把各种形式的信息资料存储到Word文档中,如文字、图片、超连接等。面对大量文档信息,对它们分类管理显得尤其重要。
由于日常工作中要处理的文档越来越多,而如果不对其分类整理将造成需要时查找等麻烦。特别是处理文字文档较多的工作,如财务管理,文秘等工作。解决以上问题有两种方法可行:一、利用Windows对磁盘文件、文件夹的分级管理功能。如在D盘上新建几个文件夹,分别代表各类性质的文档。此方法解决了对文档的分类存储问题,但极不方便。如在使用文档时,只能找到某个盘下的某个目录,再进行新建文档、删除文档、重命名文档等操作,当文档多且所分的等级较多时(就是盘符下面的文件夹级数多),将浪费时间,影响办公效率,当要求多次重复此等操作时,更显其弊端。二、开发Word插件。此插件在打开Word软件时被加载,以工具档里工具的形式出现。点击此工具,就可对文档进行各种随心所欲的操作,但不改变文档内容,也就是说此插件是基于文档的存储路径的,而不是基于文档本身。 【www.think58.com计算机毕业论文网】 [来源:http://www.think58.com]
首先,插件基于文档的存储路径,因此“存取自由”是它的一个特色。用户可将文档存放在磁盘任何地方(建议不放在本地C盘或桌面),也包括来自网络上的文档路径,当磁盘空间有限的时候,可以充分体现这一优势。
其次,插件允许用户对文档进行任何操作。包括新建、打开、编辑、删除文档等等。
此插件还有一个重要特点,就是以工具栏里的工具形式出现,在启动Word软件时被加载。因此它很“轻量级”,占用系统资源少,使用方便,容易卸载。
4.2 数据存储结构分析
系统的数据存储方式可有两种理想的选择:XML和Access关系数据库。
XML提供了一套跨平台、跨网络、跨程序语言的数据描述方式,使不同系统之间的数据交换更加高效。但如果从更高的技术角度出发,就会发现,对XML文档简单的文件管理是远远不够的:低效的存储组织、索引查询技术,不提供事务、安全恢复机制,无法保证数据的完整性和一致性,没有并发控制、移植工具等。用XML可方便实现无限层分类目录的保存。
关系数据库是实体间联系是固定的,有良好的完整性支持,对具有一对多的层次关系,更为直接的描述现实世界,有良好的性能,存取效率较高,建立在严格的数学概念的基础上,概念单一,实体与实体间的联系都用关系表示,数据结构简单、清晰,存取路径对用户透明,有更高的数据独立性和更好的安全保密性。Access适用于小型商务活动,用以存贮和管理商务活动所需要的数据。Access不仅是一个数据库,而且它具有强大的数据管理功能,它可以方便地利用各种数据源,生成窗体(表单),查询,报表和应用程序等。使用Microsoft Access,可以在单一的数据库文件中管理所有的信息。
本文来自think58
[资料来源:http://THINK58.com]
基于系统需求分析和Visual Basic语言对Access数据库的强大支持,及Access自身具有的便捷、易使用等特点,系统选用Access数据库存储相关记录。
4.3 数据库设计
由于系统基于文档存储路径,操作修改对象大部分对于路径和相关记录,因此数据库只对文档的路径和相关记录进行存储,而不是文档。系统把记录分为三层,即三个部分,共三张表,分别用来存储目录、文件夹和文档路径。用表table1存储目录,表table2存储文件夹,表table3存储文档记录。如图: think58好,好think58
[资料来源:http://www.THINK58.com]
[版权所有:http://think58.com]
[资料来源:http://think58.com]
copyright think58
图2 数据库表图
目录表table1:用于存储记录的最高级目录。包括两列:sort_id,自动编号,主键;sort,文本类型,储存目录名称。
图3 目录表table1
文件夹表table2:用于保存记录的中间层,也就是目录的下一层。包括三列:fold_id,自动编号,主键;ref_table1_id,数字类型,外键,用于关联table1的sort_id;fold,文本类型,用于保存文件夹记录名称。
图4文件夹表table2
文档路径表table3:用于保存文档路径,文件夹的下一层也就是最底层。包括四列:file_id,自动编号,主键;ref_table2_id,数字类型,外键,关联到table2的fold_id;filename,文本类型,用于保存文档的文件名;filepath,文本类型,用于保存文档的存储相对路径。
图5 文档表table3
表之间的关系如图:
图6 表关系图
5 系统实现
5.1 插件接口方法
当VB运行时,在Add-In菜单中装载组件以后,VB就会调用组件中IDTExtensibility对象中的OnConnection方法。在OnConnection方法里定义Application对象变量,并调用CommandBars.Add方法,就可在程序运行时加载工具栏。
在“引用”对话框中选择“Microsoft Office 8.0 Object library”复选框,可以通过“对象浏览器”访问并浏览各种命令条对象。 内容来自think58 [资料来源:http://www.THINK58.com]
因为菜单和工具栏属于相同的对象库,它们都将通过CommandBarControl对象被引用。一个菜单条命令条可以包括几个菜单项,每个菜单项本身也是一个命令条,而且它又可以包括若干个菜单命令,每条命令依然是一个命令条。利用这种模式可以很容易地在开发环境中放置外接程序。
使用commandBars集合对象用外接程序来添加命令栏和控件。在OnConnection事件过程定义Application、commandbars对象变量,此过程创建新的命令条按钮,并返回对它的对象变量,并定义commandbar上按键的事件。
5.2 事件响应
从结构上来看,一个VB插件实际上是一个COM组件,原则上组件可以使用支持COM的开发工具。组件通过实现COM中的IDTExtensibility对象来建立与VB的连接。组件注册以后,当VB运行中在Add-In菜单中装载组件后,VB就会调用组件中IDTExtensibility对象中的相应方法(如在装载组件后会调用OnConnection方法)。这时整个插件就成为VB的一部分从而可以访问VB开发环境中的各种对象和资源了。
在Client派生一个IDispEventImpl类来实现IDispatch接口的Sink。在OLE中,连接点是指一种由调用接口的对象(称为“源”)和执行接口的对象(称为“汇”)构成的机制。连接点执行一个流出接口,它能够在其他对象上开启动作,比如激发事件和更改通知。通过揭示一个连接点,源就允许汇建立到此源的连接。插件接口要响应Word事件,需要实现IDispEvents接口。 copyright think58
图7 接口示意图
1、一个COM组件,允许有多个连接点对象(IConnectionPoint)。也就是说可以有多个发生“事件”的源头。图7中就有3个连接点。
2、管理这些连接点的接口叫“连接点容器”(IConnectionPointContainer)。连接点容器接口特别简单,因为只有2个函数,一个是FindConnectionPoint(),表示查找你想要的连接点;另一个是EnumConnectionPoints()。
3、每一个连接点,可以被多个客户端的接收器(Sink)连接。
首先通过VB可以快速建立一个IDTExtensibility对象框架,其次VB对于整个开发环境都提供了相应的对象供插件访问和控制,而使用插件的主要目的就是通过插件来控制宿主程序,调试十分的方便,可以直接运行看结果,不需要编译注册。
IDTExtensibility库提供了5个可用来操纵加载项以及宿主应用程序的事件:OnConnection、OnDisconnection、OnAddInsUpdate、OnStartupComplete和OnBeginShutdown。由于接口是对象和Visual Basic之间的约定,必须确保实现接口中的所有方法。这就意味着全部四种IDTExtensibility接口方法必须在类模块中提供,每一种至少包含一个可执行语句。它能小到只有一个说明语句,但是,它们必须至少包含一个可执行语句,以免编译程序把它们作为空过程删除。 [资料来源:http://THINK58.com]
1.OnConnection事件
OnConnection事件在COM加载项加载(连接)时发生。
2.OnDisconnection事件
OnDisconnection事件在卸载COM加载项时发生。可使用OnDisconnection事件过程运行能够恢复由加载项对应用程序所作任何更改的代码,并执行常规清除操作。
3.OnStartupComplete事件
当宿主应用程序完成启动例程时,就会发生OnStartupComplete事件,在这种情况下,COM加载项在启动时加载。如果加载项未在应用程序加载时加载,OnStartupComplete事件就不会发生,即使用户在“COM加载项”对话框中加载加载项也是如此。如果此事件确实发生,则它将在OnConnection事件之后发生。
4.OnBeginShutdown事件
在应用程序关闭而COM加载项仍处于加载状态的情况下,如果宿主应用程序开始其关闭例程时,就会发生OnBeginShutdown事件。如果应用程序关闭时该加载项还没有加载,OnBeginShutdown事件就不会发生。如果此事件确实发生,它将在OnDisconnection事件之前发生。
5.OnAddInsUpdate事件
当一组已加载的COM加载项发生更改时,就会发生OnAddInsUpdate事件。当某个加载项加载或卸载时,就会在任何其它已加载的加载项中发生OnAddInsUpdate事件。
5.3 系统实现
内容来自think58 [资料来源:THINK58.com]
基于以上背景,及对用户需求的充分考虑和当前工作环境及条件,将功能总结如下:新建记录、打开文档、编辑记录、删除文档和记录、添加文档记录。
1.新建记录:主要分三层结构,目录、文件夹、文档。可对目录、文件夹新建,但对文档请使用添加功能。
2.打开文档:当在界面内选定某个文档后,用WORD打开此文档。
3.编辑记录:对记录(包括目录和文件夹)重命名。
4.添加文档:将本地磁盘的文档放入某个文件夹之下。
5.删除文档和记录:删除目录或文件夹(也就是记录),删除磁盘(介质)上的WORD文档至回收站,永久删除磁盘上文档。
本文来自think58