套红说明Word下载.docx

上传人:b****5 文档编号:19719790 上传时间:2023-01-09 格式:DOCX 页数:22 大小:1.76MB
下载 相关 举报
套红说明Word下载.docx_第1页
第1页 / 共22页
套红说明Word下载.docx_第2页
第2页 / 共22页
套红说明Word下载.docx_第3页
第3页 / 共22页
套红说明Word下载.docx_第4页
第4页 / 共22页
套红说明Word下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

套红说明Word下载.docx

《套红说明Word下载.docx》由会员分享,可在线阅读,更多相关《套红说明Word下载.docx(22页珍藏版)》请在冰豆网上搜索。

套红说明Word下载.docx

3-6.jpg(128.16K)

(图3-6模板中套入正文)

3-7.jpg(75.35K)

(图3-7模板中套入正文)

这样,只要简单的操作编辑好的正文就能套用在事先定制好的模板里,形成一个正式的公文。

可能大家会不清楚模板文件在哪里,我带大家找一下。

其实,在iWebOffice2003/2006的演示包中,会有一个Document目录,我们调用的模板文件就在这个里面。

3-8.jpg(84.11K)

(图3-8Document目录)

3-9.jpg(59.78K)

(图3-9模板文件)

就这样,在应用iWebOffice2003/2006网络文档控件提供的功能后,用户只需要进行简单的操作,就可以使用“模板套红”这样看似复杂的功能。

3.2模板套红开发流程

应用也许很简单,当开发人员可能更关心功能的实现方法。

下面,针对刚才的功能,说明一下“模板套红”的开发流程。

3.2.1定义标签

进入“标签管理”,可以进如下面的界面,在这里自己定义需要的标签。

在模板文档中定位要插入的正文位置,是通过标签(也就是WORD中的书签)来实现的。

金格提供的DEMO中使用了Content这个标签定位正文插入的位置。

3-10.jpg(107.80K)

(图3-10标签管理)

标签都是有名称的,为了实现动态的取数据库的数据设置到文档中,可以把这里的标签名称和数据库的字段名称对应起来(这个以后再做介绍)。

说明一下表格中对应的内容:

编号:

无特殊意思,唯一编号用;

标签名称:

标签的名称,插入WORD后就是书签的名称;

标签说明:

插入WORD后会用这个占据标签对应的位置,方便查看标签区域;

标签备注:

这里的内容在通过标签填充模板时用到,模板套红功能暂时用不到。

3.2.2制作模板

先看看Document目录下提供的两个模板

3-10-2.jpg(86.24K)

(图3-10模板文件内容)

3-11.jpg(73.97K)

(图3-11模板文件内容)

通过菜单的“插入”→“书签”我们可以看到当前文档中的标签。

选择标签名称后点定位可以看到标签所覆盖的区域。

标签所覆盖的区域在插入正文后将直接被插入的内容替换掉。

3-12.jpg(89.50K)

(图3-12模板文件中的标签)

从效果上看,套红的过程就是打开了模板文件,然后把正文插进来替换调了Content这个标签所在的区域。

3.2.3数据库模板

模板当然不止能保存在服务器的文件夹里,金格的演示中也提供了应用数据库保存和使用模板的方法。

在列表页面进入“模版管理”,我们可以看到一些演示提供的模板。

3-13.jpg(112.63K)

(图3-13模板管理列表页)

我们在这里可以新建自己的模版,或者编辑已经存在的模板。

3-14.jpg(53.29K)

(图3-14新建模板)

这里演示的操作都是可以提供给最终应用客户使用的,也只有客户自己才知道需要什么样的模板。

最重要的地方应该是为模板放置标签了,如果没有标签,那我就真不知道怎么插文档进来了。

当然,插入用的标签名称不止是Content,完全可以是别的任意什么名称,只是后期开发中需要在服务器处理页面中把这个名称对应起来。

后面我就来说处理页面中的开发。

3-15.jpg(57.08K)

(图3-15设置标签)

3.2.4编辑页面中的接口调用

金格iWebOffice2003/2006控件提供了丰富的接口,调用的方式为直接用JavaScript方式。

先来看一下“套用模版定稿”按钮所应用到的代码:

1.

2.//作用:

套用模版定稿

3.functionWebInsertFile(){

4.varmDialogUrl="

Template/TemplateForm.asp"

;

5.varmObject=newObject();

6.mObject.Template="

"

7.window.showModalDialog(mDialogUrl,mObject,"

dialogHeight:

200px;

dialogWidth:

360px;

center:

yes;

scroll:

no;

status:

);

8.if(mObject.Template=="

){//判断用户是否选择模板

9.StatusMsg("

取消套用模"

10.returnfalse;

11.}else{

12.SaveDocument();

//保存当前编辑的文档

13.//设置变量COMMAND="

INSERTFILE"

,在WebLoadTemplate()时,一起提交到OfficeServer中

14.据库…axunwebform.WebOffice.WebSetMsgByName("

COMMAND"

"

15.//全局变量Template赋值

16.webform.WebOffice.Template=mObject.Template;

17.if(webform.WebOffice.WebLoadTemplate()){//交互OfficeServer的OPTION="

LOADTEMPLATE"

18.//SetBookmarks("

Title"

关于中间件研发工作会议通知"

19.//填充模板其它基本信息,如标题,主题词,文号,主送机关等

20.if(webform.WebOffice.WebInsertFile()){//填充公文正文,OPTION="

21.StatusMsg(webform.WebOffice.Status);

22.}else{

23.StatusMsg(webform.WebOffice.Status);

24.}

25.}else{

26.StatusMsg(webform.WebOffice.Status);

27.}

28.}

29.}

复制代码

通过代码我们可以清楚的看到套用模板的整个调用过程,其实是个组合过程,把一些接口操作按顺序调用来达到效果:

1.弹出选择模板的窗口;

2.保存当前编辑的文档;

(这里很重要)

3.设置"

变量,内容为"

,如果打开服务器文件夹里的模板就设置,从数据库中打开就不设置。

(作用在处理页面中讲)

4.获得返回的选择的模板名称;

5.调模板文件;

6.插入之前保存的正文。

在二次开发中这些代码基本都是可以重用的,但值得注意的是金格的DEMO中套用模板是从文件夹里取模板的,如果需要从数据库中取需要做一些修改:

弹出的模板选择页面中(如TemplateForm.asp)需要改成从数据库取模板表生成选择列表;

返回的值也从文件名称改成记录编号。

3.2.5处理页面中的开发

编辑页面的控件接口被调用了,信息将传进处理页面中。

处理页面内完成两个操作:

1.)调用模板文件

2.case"

'

下面的代码为打开服务器数据库里的模板文件

3.mTemplate=MsgObj.GetMsgByName("

TEMPLATE"

)'

取得模板文档类型

4.'

本段处理是否调用文档时打开模版,

5.'

还是套用模版时打开模版。

6.mCommand=MsgObj.GetMsgByName("

取得客户端定义的变量COMMAND值

7.if(mCommand="

)then

8.mFilePath=Server.MapPath("

."

9.MsgObj.MsgTextClear

10.if(MsgObj.MsgFileLoad(mFilePath+"

\Document\"

+mTemplate))then'

调入模板文档

11.MsgObj.SetMsgByName"

STATUS"

打开模板成功!

设置状态信息

12.MsgObj.MsgError="

清除错误信息

13.else

14.MsgObj.MsgError="

打开模板失败!

设置错误信息

15.endif

16.else

17.MsgObj.MsgTextClear'

清除文本信息

18.ifLoadTemplate()then'

19.MsgObj.MsgFileBody=mFileBody'

将文件信息打包

20.MsgObj.SetMsgByName"

21.MsgObj.MsgError="

22.else

23.MsgObj.MsgError="

24.endif

25.endif

首先,可以看到这里有个mCommand,他在前面是取了客户页面传过来的"

变量的内容,内容是"

(这个在编辑页面中打过招呼了)。

另外可以看到这里打开的是指定好路径的一个文档,文档的名称是编辑页面中获得后传进来的:

1.MsgObj.MsgFileLoad(mFilePath+"

+mTemplate)

如果是需要从数据库取文档,这里就要注意了。

mCommand的价值就在这里,如果没有"

,就是从数据库取模板了。

看代码应该很好理解了吧。

2.)调用正文

2.case"

'

下面的代码为插入文件

3.mRecordID=MsgObj.GetMsgByName("

RECORDID"

)'

取得文档编号

4.mFileName=MsgObj.GetMsgByName("

FILENAME"

取得文档名称

5.mFileType=MsgObj.GetMsgByName("

FILETYPE"

取得文档类型

6.MsgObj.MsgTextClear'

7.if(LoadFile())then'

调入文档

8.MsgObj.MsgFileBody=mFileBody'

9.MsgObj.SetMsgByName"

POSITION"

Content"

设置插入的位置[书签]

10.MsgObj.SetMsgByName"

打开成功!

11.MsgObj.MsgError="

12.else

13.MsgObj.MsgError="

打开失败!

14.endif

调用正文就很简单了,只要是正文保存在数据库里就用这个插正文。

这里要注意一个地方,不知道大家看见了没有,就是MsgObj.SetMsgByName"

这里设置POSITION参数的作用是制定要插入到的模板中的哪个标签位置,演示DEMO中设置的是Content标签,如果模板里定义了别的标签名称用来插入正文,则在这里设置相应的标签名称就可以了。

四、数据库模板篇

4.1套用数据库中的模板演示

1.)查看数据库中,备用的模板。

(制作模板的流程与套用文件夹里的一样)

4-1.jpg(119.97K)

(图4-1排版好的模板)

2.)编辑好文档的正文,准备套红:

4-2.jpg(125.77K)

(图4-2辑好的正文,准备套模板)

3.)选择数据库里面的红头模板:

4-3.jpg(155.85K)

(图4-3择数据库中的模板)

4.)套红之后的效果:

4-4.jpg(156.03K)

(图4-4用数据库模板之后的效果)

4.2套用数据库中的模板代码示例

为了配合我们用简短的代码来描述情况,我们以金格科技提供的开发示例包(iWebOffice2006.ocx.jsp.Mssql.rar)为基础,进行说明。

要从数据库中取出模板,进行套红,我们先来看一下,代码的开发流程。

首先我们得从数据库中读取模板,以供选择。

确定了要套用的模板之后,我们接下来的,就是要清楚iWebOffice控件的套用模板的工作流程:

1、保存准备套模板的正文;

2、通过WebLoadTemplate()接口,与后台处理程序OfficeServer.jsp的OPTION="

交互,实现从调用数据库中的模板。

注意模板里面一定要有一个可以让正文放置的书签;

3、把保存的正文文档插入到模板的书签位置。

现在我们来看一下具体的实现代码:

1.)做好数据库得到模板的页面:

1.//在下拉框中,读取数据库中的模板名和编号,因为主要是数据库操作,这里只给出关键的几个步骤

2.publicStringLoadDataWordList(){

3.StringmWordList="

<

selectname=DWordListstyle='

width:

240px;

>

//打开数据库

4.StringmSql="

SelectRecordID,FileType,FileName,DescriptFromTemplate_FileorderbyTemplateIDdesc"

5.//查询数据库略…

6.ResultSetresult=DbaObj.ExecuteQuery(mSql);

7.while(result.next()){

8.mWordList=mWordList+"

optionvalue='

+result.getString("

RecordID"

)+"

Descript"

/option>

9.//中间部分略…

10.mWordList=mWordList+"

/select>

11.return(mWordList);

12.}

2.)HTML里面的按钮

1.<

inputtype=buttonclass=buttonvalue="

套数据库模板"

onclick="

WebInsertDM()"

3.)按钮触发的JS函数:

即WebInsertDM()里面的函数。

这里面的功能主要有三部分。

第一部分,是指定网页,从中读取数据库里面的模板。

具体代码如下:

2.varmDialogUrl="

Template/TempDataFrm.jsp"

//读取数据库模板的列表页面

3.varmObject=newObject();

4.mObject.Template="

5.window.showModalDialog(mDialogUrl,mObject,"

第二部分,是判断是否取得模板。

具体的代码如下:

1.//判断用户是否选择模板

2.if(mObject.Template=="

){

3.alter("

取消套用模板"

4.returnfalse;

5.}else{

6.//接第三部分的代码,与后台处理程序交互,套用模板

第三部分,与后台处理程序交互进行套用模板。

2.SaveDocument();

3.//全局变量Template赋值,读取数据库中模板,Template值为数据库中的模板编号

4.//注:

模板中有要标签Content,区分大小写

5.webform.WebOffice.Template=mObject.Template;

6.if(webform.WebOffice.WebLoadTemplate()){

7.//交互OfficeServer的OPTION="

8.if(webform.WebOffice.WebInsertFile()){

9.//填充公文正文交互OfficeServer的OPTION="

10.alert(webform.WebOffice.Status);

12.alert(webform.WebOffice.Status);

13.}

14.}else{

15.alert(webform.WebOffice.Status);

16.}

17.}

4.)后台通过OPTION交互的代码:

1.elseif(mOption.equalsIgnoreCase("

)){

2.

3.//下面的代码为打开服务器数据库里的模板文件

4.mTemplate=MsgObj.GetMsgByName("

MsgObj.MsgTextClear();

//清除文本信息

5.if(LoadTemplate()){//调入模板文档

6.MsgObj.MsgFileBody(mFileBody);

//将文件信息打包

7.MsgObj.SetMsgByName("

//设置插入的位置[书签]

8.MsgObj.SetMsgByName("

//设置状态信息

9.MsgObj.MsgError("

//清除错误信息

10.}

11.else{

12.MsgObj.MsgError("

//设置错误信息

14.}

5、后台处理程序中,调用加载指定模板的函数:

2.//功能是调出模板文档,将模板文档内容保存在mFileBody里,以便进行打包

3.//因为都是对数据库进行操作,这里只给出主要的代码

4.privatebooleanLoadTemplate(){

5.booleanmResult=false;

6.StringSql="

SELECTFileBody,FileSizeFROMTemplate_FileWHERERecordID='

+mTemplate+"

7.//查询数据库略…

8.mFileBody=result.getBytes("

FileBody"

9.//关闭数据库略…

10.mResult=false;

11.return(mResult);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1