`
beisicao
  • 浏览: 66660 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

iWebOffice2003.ocx 的程序集成

阅读更多
----------------------------------------------------------------------------------------------------------------------

一、控件的工作原理
iWebOffice控件其实是有两个文件(或者称两个控件)组成的。一个用于集成在页面上的iWebOffice2003.ocx文件和一个用户后台服务器上的iMsgServer2000.dll(JAVA开发语言下则是DBstep目录下的iMsgServer2000.class)文件。

控件的工作其实就是前后台通信和处理的过程。iWebOffice2003.ocx集成在页面上,通过javascript脚本调用,用于文档的编辑,以及传递信息到服务器;iMsgServer2000.dll在服务器端运行,用于解析iWebOffice2003.ocx控件发过来的信息包,以及将服务器上处理的结果反馈给客户端的iWebOffice2003.ocx

客户端控件的函数功能分两种:

1、 不和服务器交互的功能,这类函数实现一个文档表面的功能,不需要和服务器端交互(即不向服务器端的处理页面发数据),如:设置书签内容、获取文档的内容、获取文档痕迹、插入本地文档和图片等;

2、 另一类是要和服务器交互的功能,这类函数调用时客户端控件都会将控件中的信息打包发向处理页面,处理页面引用服务器端控件来解析传过来的内容,并进行处理,具体服务器页面程序执行那端代码,在我们的示例程序里都有关于具体交互OfficeServer页面OPTION值的注释,处理完后将信息通过服务器端控件打包,再发送给客户端,这类函数需要一个“客户端”—>“服务器处理页面”—>“客户端”的流程才能完成工作,如:打开文档、保存文档、插入服务器上的文档到当前文档中、套用模版、签名盖章等。

二、控件的集成步骤
1、 注册服务器端组件
演示程序包中有一份名称为《COM组件安装.doc》的文档,里面介绍了WINDOWS平台下如何注册服务器端组件,请开发人员参考操作。

开发语言为JAVA的话可以不用注册。只要保持iMsgServer2000.class文件在DBstep目录下就可以了。

2、 数据库准备
演示中提供了演示用的数据库文件,如果希望集成时省点心可以直接用我们提供的表。相信开发之前都会看看演示程序,所以表应该都会有的。使用演示程序提供的表可以方便的使用后面会说到的officeserver文件,不用做大量的修改。开发人员可以先用这些表做集成,等理解了控件的工作方式,可以再使用自己的表。

3、 集成客户端控件
<OBJECT id="WebOffice" width="100%" height="100%" classid="clsid:23739A7E-5741-4D1C-88D5-D50B18F7C347" codebase=" iWebOffice2003.ocx#version=6,0,0,4 " ></OBJECT>

在需要进行文档编辑和保存的页面上,将上面的代码放在希望显示文档的地方。其中:id是可以开发人员定义的,是指控件在页面上形成对象的名称;classid是固定的,是控件的注册编号;codebase由两部分组成,codebase=后面到#version之前的部分是控件的下载地址,#version=之后的部分是控件的版本号。控件的下载地址和版本号都务必写正确,否则可能造成控件不能正常下载、显示和使用。请注意,版本在这里之间是用”,”来间隔的。

4、 设置客户端控件的必要属性
在使用控件打开文档之前,需要设置控件的一些必要属性。这些属性都是客户端控件的,所以需要用javascript语句在页面上设置客户端控件对象的这些属性。

请打开演示程序的DocumentEdit.asp页面,找到Load()这个javascript函数——在演示程序中是一个打开文档的函数。首先就可以看到一些控件对象重要属性的设置,如:

webform.WebOffice.WebUrl="<%=mServerUrl%>";

webform.WebOffice.RecordID="<%=mRecordID%>";

webform.WebOffice.Template="<%=mTemplate%>";

webform.WebOffice.FileType="<%=mFileType%>";

webform.WebOffice.EditType="<%=mEditType%>";

webform.WebOffice.UserName="<%=mUserName%>";

上述属性可以在技术白皮书中查到准确的意义和解释,不过在这里还是为开发人员介绍一下。请注意,这里的调用形式为:form名.控件对象名.属性=””;

WebUrl:指向一个后台处理页面。当调用需要后台处理的功能函数时,客户端控件会将信息全部打包并发送给这个属性指向的页面。然后由该页面接收信息、处理然后将处理后的信息打包返回给客户端控件。该属性不能为空或出错,否则报错。演示程序中的这个页面一般是officeserver.xxx页面,如officeserver.asp(asp开发)、officeserver.jsp(jsp开发)、OfficeServer.aspx.cs(c#开发)等等。

RecordID:文档编号。用于向后台传需要打开的文档的编号。演示程序中是用当前时间做编号,开发人员可以根据自己系统的情况来设置。可以为空,为空时如果调用打开文档函数则会判断是否有模版编号,如果有打开模版;没有模版编号或打开模版失败时打开一个空白文档。

Template:模版编号。用于向后台传需要打开的模版的编号。需要打开模版时设置,不打开模版时可以为空。

FileType:文件类型。要打开的文档类型,可以是.doc/.xls/.ppt/.wps。

EditType:编辑方式。打开文档后的编辑方式,可以是0=阅读;1=修改[无痕迹];2=修改[有痕迹];3=核稿。EditType还有一个更为灵活的设置方式能满足用户各种表现形式的需要。

UserName:编辑用户。编辑文档的用户。

上述属性中WebUrl、FileType、EditType和UserName为重要属性,不能空缺,请开发时务必注意。

5、 打开、保存和关闭文档
刚才的Load()这个javascript函数在属性设置的后面有一个WebOpen()接口;这个是用来打开文档的函数。这个函数是没有参数的,因为必要的信息都在之前的属性中设置了。开发人员在设置完那些属性后,调用WebOpen()就可以打开文档了。

保存文档的函数是webform.WebOffice.WebSave()。调用这个函数,客户端控件将文档内容和控件属性都发送到后台处理页面(officeserver.asp),然后在该页面中来实现保存。

在退出文档编辑页面时,需要调用关闭文档的接口函数:webform.WebOffice.WebClose()用于释放资源,一般可以在页面body的onunload事件中来调用。

6、 officeserver.asp文件的作用
Officeserver在演示程序中就是后台处理页面。开发人员开发时名称可以根据自己需要,但是一定要在使用到了控件的页面中为控件对象的weburl属性指定正确的访问处理页面的路径。注意,路径为绝对路径,如:http://iweboffice/officeserver.asp。如果开发人员现在是使用演示程序中的表结构,并且数据库连接对象也使用名为DBDemo的Session对象来保存,那么演示程序的Officeserver文件基本上可以直接使用,不用修改。(JAVA开发的话就是修改数据库连接类了:iDBManager2000.java)

用编辑器打开这个文件,我们了解一下里面的结构。

前面定义了变量和函数,然后从“mFilePath=Server.MapPath(".")”开始,是程序的起点。首先实例化了服务器组件的对象,然后用这个对象来接受客户端传的信息。接着解析信息,并判断传过来的“OPTION”的变量值。这个“OPTION”值是客户端控件根据用户调用函数的不同自动进行设置的(接口函数调用后对应OPTION值的变化在技术白皮书中有对照,同时在我们的示例程序里都有注释说明)。然后在这里,针对不同的OPTION值需要有不同的处理方式,也就是对不同的客户端函数调用,这里做不同的处理。演示程序提供了一些处理的方式,开发人员可能需要针对自己的系统情况做一些修改或取舍。比如:有些查询的数据库表、字段可能要修改,有些演示程序中不足的功能需要自己添加。

同时,这里可以看到之前控件一些重要的属性,在这里会被用到。如mRecordID、mFileType、mUserName等等。

这里请注意mFileBody这个对象,他用来保存WORD文档的内容。所以在需要对文档进行操作的时候都会用到这个对象,比如:打开/保存文档、打开/保存模版、插入文档等等。在打开文档时注意将mFileBody的内容付给MsgObj.MsgFileBody;而保存时将MsgObj.MsgFileBody付给mFileBody。

7、 打开/保存文档流程说明
为了开发人员更清楚的理解控件的工作方式,这里以流程的形式讲述一下打开/保存文档的处理过程。

打开文档:流程开始:1、选择列表中的一条要打开的数据      2、数据传进DocumentEdit页面【文档编号(RecordID)、文档类型(FileType)、打开方式(EditType)、打开用户(UserName)被传进来】      3、传进来的信息被设置给客户端控件的属性       4、属性设置后调用控件WebOpen()函数打开文档      5、控件OPTION值被自动设置成LOADFILE,控件的全部信息被控件打包,传给WebUrl指定的页面      6、处理页面实例化服务器端组件     7、使用服务器组件对象来接收传过来的信息        8、解析数据包,判断OPTION值     9、发现OPTION值为LOADFILE,进入LOADFILE处理方式      10、取文档编号(RecordID)     11、通过RecordID检索数据库,找到需要打开文档的记录      12、打开保存文档的大字段,将数据写进mFileBody      13、将mFileBody中的数据付给服务器端控件      14、服务器端控件将信息打包      15、通过Response对象将数据包写回客户端      16、客户端解析数据包信息,根据EditType设置的方式将文档显示出来。流程结束

保存文档:流程开始:1、在这之前我们假设控件必要的属性已经被设置     2、使用WebSave()函数保存文档      3、控件OPTION值被自动设置成SAVEFILE,控件的全部信息被控件打包,传给WebUrl指定的页面     4、处理页面实例化服务器端组件     5、使用服务器组件对象来接收传过来的信息     6、解析数据包,判断OPTION值     7、发现OPTION值为SAVEFILE,进入SAVEFILE处理方式     8、文档编号(RecordID)并将文档数据付给mFileBody      9、通过RecordID检索数据库,找到需要打开文档的记录,如果没有则新建     10、保存数据至数据表中     11、清除文档数据,服务器端控件将信息打包      12、通过Response对象将数据包写回客户端       13、客户端解析数据包信息,返回是否保存成功的信息。流程结束

三、演示程序的结构
示例程序环境如下: 

页面文件:

页面文件
说明

DocumentList.xxx
数据列表页面,用于打开、新建文档

DocumentEdit.xxx
文档编辑页面

DocumentSave.xxx
表单内容保存页面,用于保存文档编辑页面中表单里的信息

OfficeServer.xxx
文档信息后台处理的交互页面

目录Template
模版管理文件夹

TemplateList.xxx
模版列表页面

TemplateEdit.xxx
模版编辑页面

TemplateForm.xxx
套用模版用的页面

TemplateSave.xxx
模版提交保存的页面

TemplateDel.xxx
模版删除页面

目录BookMark
标签管理文件夹

BookMarkList.xxx
标签列表页面

BookMarkEdit.xxx
标签编辑页面

BookMarkAdd.xxx
标签新增页面

…………
…………

目录Signature
印章管理文件夹

目录Document
保存文档在服务器的文件夹中

目录HTML或HTMLIMAGE
保存转换成HTML页面的文件夹


数据表:

表名
说明

Document
文档基本信息表,保存基本信息

Document_File
文档正文信息表,保存数据

Template_File
模板信息表,保存模版数据

Version_File
文档版本正文信息表,保存版本的文档信息

Signature
签章基本表

Document_Signature
文档签章记录信息表,保存针对文档中的签名和印章信息

BookMarks
标签基本表(如果应用到标签功能,就需要该表)

Template_BookMarks
模板对应标签表,保存定义模版时加入在模版中的标签


分享到:
评论

相关推荐

    iWebOffice2006.ocx

    8. **API和自定义**:iWebOffice可能提供了一组应用程序接口(API),允许开发者集成到自己的系统中,或者根据需求定制功能。通过这些API,企业可以将其集成到内部系统,如CRM、ERP等,实现更高效的工作流程。 9. *...

    iWebOffice.ocx.jsp.mssql.rar

    标题 "iWebOffice.ocx.jsp.mssql.rar" 暗示了这个压缩包可能包含与iWebOffice组件、OCX对象、JSP编程以及Microsoft SQL Server数据库相关的资源或教程。iWebOffice通常是一款在线办公套件,允许用户通过网页浏览器...

    IWeboffice.OCX

    IWeboffice.OCX 是一款用于在线文档预览和处理的ActiveX控件,主要应用于Web应用程序中,特别是ASP(Active Server Pages)环境。它使得开发者能够在网页上实现对各种常见办公文档(如Word、Excel、PowerPoint等)的...

    iweboffice网页办公ocx控件

    压缩包中的“iWEB程序示例”文件可能包含了一些演示如何使用iWebOffice控件的实例代码或配置文件,对于开发者来说,这些示例可以帮助快速理解和学习如何在实际项目中集成和应用iWebOffice控件。 总的来说,...

    金格科技iweboffice2015

    4. **集成性**:iWebOffice2015设计为一个可插拔组件,能够方便地与各种企业信息系统(如ERP、CRM、OA)进行集成,提供统一的在线文档管理界面。 5. **API接口**:提供丰富的API接口,允许开发者根据业务需求进行...

    iWebOffice2006

    2. **ActiveX Control**:iWebOffice2006.ocx.c.net 文件是一个ActiveX控件,它是由Microsoft开发的一种技术,可以让开发者创建可插入Web页面的小型应用程序。在本例中,这个控件是iWebOffice2006的核心组件,负责在...

    金格iWebOffice官方API(网页Office集成)

    - 支持多种接口,方便与其他应用程序集成。 9. **运行环境**: - 需要特定的操作系统、浏览器和服务器环境才能正常运行,具体可以在产品文档中查找详细信息。 10. **体系架构**: - 通常包括客户端插件、服务器...

    iWebOffice-ocx-php.rar_WebOffice-ocx-php_iweboffice php_iwebof

    4. **集成和部署**:使用iWebOffice OCX控件的系统需要在服务器上正确安装和配置,包括注册控件、设置PHP环境以及确保Web服务器支持必要的扩展。 5. **安全性和性能**:由于涉及Web上的Office文档操作,安全性和...

    开源iWebOffice控件,让网页拥有word一样的功能!

    3. **集成示例**:`iWebOffice.ocx.jsp`可能是一个演示页面,展示了如何在JSP环境中集成和调用iWebOffice控件。 四、安全与性能考虑 1. **安全**:使用iWebOffice时,要注意防止文件上传和下载过程中的安全风险,...

    金格软件工具

    该软件的核心组件是`iWebOffice2006.ocx.asp.rar`等一系列针对不同开发语言的OCX(Object Linking and Embedding, Object Control)版本,这些文件是为了满足各种编程环境下的集成需求。OCX是微软开发的一种控件技术...

    oa办公系统源码,还有设计说明

    OCX是微软的一种控件技术,常用于Windows应用程序,而这里可能被用在服务器端来处理数据操作。 总的来说,这个压缩包提供了学习和研究OA系统开发的宝贵资源,包括实际的源代码、设计思想以及安装和使用的指导。对于...

    jsp weboffice控件

    `iWebOffice.ocx`看起来是一个ActiveX控件,常用于IE浏览器,用于处理Office文档的在线预览和编辑。`.jsp`后缀表明这个控件可能是在JSP页面中被调用的。ActiveX控件在客户端运行,可以提供更直接的性能,但可能受到...

    Web版Office控件

    Web版Office控件是通过将Office应用程序的部分功能封装成一个可嵌入到网页中的组件,通常是OCX(OLE控件)文件,如`iweboffice2003.ocx`。当用户访问网页时,浏览器加载这个控件并调用其接口来实现与Office文档的...

    asp.net网络办公系统(C#)

    为了与其他系统集成,ASP.NET支持创建Web服务(如SOAP或RESTful API),使得其他应用程序可以调用办公系统的功能,如获取任务列表、提交报告等。 9. **部署和扩展性**: ASP.NET应用可以轻松部署到IIS(Internet ...

Global site tag (gtag.js) - Google Analytics