久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

基于Word的工作流表單引擎設(shè)計(jì)和實(shí)現(xiàn)

 yiyiyicz 2012-06-16

 

 基于Word的工作流表單引擎設(shè)計(jì)和實(shí)現(xiàn)

 

 1.引言

工作流技術(shù)是當(dāng)今信息系統(tǒng)中應(yīng)用最廣泛的技術(shù),廣泛應(yīng)用于辦公自動(dòng)化系統(tǒng),、電子政務(wù)應(yīng)用等多個(gè)信息化應(yīng)用領(lǐng)域。根據(jù)國(guó)際工作流管理聯(lián)盟(WfMC)的定義工作流是一類能夠完全或者部分自動(dòng)執(zhí)行的業(yè)務(wù)過程,,根據(jù)一系列過程規(guī)則,,文檔,、信息或任務(wù)能夠在不同的執(zhí)行者之間傳遞、執(zhí)行,。

表單在工作流系統(tǒng)中承載著各種信息的收集和發(fā)布的任務(wù),,在應(yīng)用系統(tǒng)中存在著大量的表單驅(qū)動(dòng)的業(yè)務(wù)流程,業(yè)務(wù)的靈活多變必然要求工作流表單引擎也要具有靈活,、易用的特性,。在當(dāng)今工作流的發(fā)展中,缺少一個(gè)表單定制工具來定制流程所對(duì)應(yīng)的頁(yè)面成為新的研究課題,。然而,,由于UI開發(fā)不屬于流程引擎的范疇,很多工作流產(chǎn)品不包含表單開發(fā)工具,,或者只包含一個(gè)簡(jiǎn)單而死板的頁(yè)面開發(fā)工具,,對(duì)應(yīng)用的UI開發(fā)不能提供很好的幫助。

隨著近年來Microsoft Word在辦公領(lǐng)域的普及,,使得Word已成為各種文檔,、表單事實(shí)上的標(biāo)準(zhǔn)。本文在對(duì)Microsoft Word深入研究的基礎(chǔ)上,,給出了基于Word的工作流表單引擎的設(shè)計(jì)思路和實(shí)現(xiàn)方案,,借助Word具有的普及性、易用性等諸多優(yōu)點(diǎn),,對(duì)于實(shí)現(xiàn)大量的以表單驅(qū)動(dòng)的業(yè)務(wù)流程自動(dòng)化,,具有很高的應(yīng)用價(jià)值。

 

 2Microsoft Word對(duì)象模型

構(gòu)建基于Microsoft Word的工作流表單引擎,首先要對(duì)Word有足夠的了解,。一篇Word文檔是由若干諸如段(Paragraph),(Table)等對(duì)象構(gòu)成,。Word文檔中經(jīng)常操作的對(duì)象主要有以下一些:

Application : 代表Word應(yīng)用程序。

Documents : Word當(dāng)前打開的所有文檔對(duì)象所組成的集合,。

Document : 代表一篇文檔。

InlineShapes : 代表由InlineShape對(duì)象組成的集合,,代表文檔,、區(qū)域或選定內(nèi)容的所有嵌入式圖形。

InlineShape : 代表文檔的文字層中的對(duì)象,,只能是圖片,、OLE對(duì)象或ActiveX控件。

Paragraphs : 代表所選內(nèi)容,、范圍或文檔中的所有段落,。

1 Word對(duì)象模型

Fig.1 Word Object Model

Range : 該對(duì)象代表文檔中的一個(gè)范圍。每一個(gè)Range 對(duì)象由一起始和一終止字符位置定義,。

若要針對(duì)Microsoft Word開發(fā)解決方案,,就需要與Word對(duì)象模型[1] (1)進(jìn)行交互。

3.表單信息模型的建立

針對(duì)政府,、企業(yè)需要處理的大量的基于表單的業(yè)務(wù)流程,,本文提出了一種利用表單來表達(dá)工作流信息的方法,流程運(yùn)行中的各種信息,如表單的結(jié)構(gòu)、表單的數(shù)據(jù),、該表單所代表的業(yè)務(wù)類型和內(nèi)容,、任務(wù)創(chuàng)建時(shí)間、任務(wù)涉及到的參與者等信息都是記錄在表單中的,。表單是這種模式下的主要信息載體,也是系統(tǒng)和用戶交互的主要方式,。

定義1(過程) 一個(gè)過程是定義好的一個(gè)有向圖p=(A,L),這里A={αi|i=1…,n}是活動(dòng)集;L{(αi,αj)|αi,αjA}是鏈接集,一個(gè)鏈接如(αi,αj)表示第i個(gè)活動(dòng)是第j個(gè)活動(dòng)的前置活動(dòng),。

定義2(表單) 一個(gè)表單Fk(k=1,,K),由一系列的表單單元組成,每個(gè)表單單元由最基本的表單元素組成,Fk={Um|m=1,,M},Um={fl|l=1,,L},f表示表單的基本元素,。

根據(jù)表單信息的范圍和表現(xiàn)形式,可以把表單信息模型分為三層:表示層、數(shù)據(jù)層和控制層,,其結(jié)構(gòu)如圖2所示:

2 表單信息模型

Fig.2 Form Information Model

表示層即表單的外觀,,包括表單的樣式和表單域。表單樣式主要由文字,、表格,、圖形等元素構(gòu)成。表單域是進(jìn)行數(shù)據(jù)交互的接口,,常用的表單域?qū)ο笥校簶?biāo)簽(Label),、文本框(TextBox)、復(fù)選框(CheckBox),、選項(xiàng)按鈕(OptionButton)等,。

數(shù)據(jù)層包含了表單中的全部數(shù)據(jù)信息。其中,,表單域數(shù)據(jù)是數(shù)據(jù)信息的主體,,用于系統(tǒng)與用戶以及用戶之間的數(shù)據(jù)交互。表單的相關(guān)信息包含兩部分內(nèi)容:用戶基本信息和用戶權(quán)限,。其中,,用戶的基本信息包括參與者的部分重要屬性,如姓名,、角色和E-Mail等。用戶的權(quán)限信息描述了不同的參與者對(duì)表單的操作權(quán)限,,如只讀、只寫,、無權(quán),、可見或不可見等。

控制層用于控制表示層和數(shù)據(jù)層的實(shí)現(xiàn),。對(duì)表示層的控制主要包括對(duì)表單樣式和表單域的添加,、編輯,、刪除等,,對(duì)各種表單元素屬性的控制,如顏色,、大小,、位置等,以及對(duì)表單域?qū)ο蟮膶傩钥刂?,如默認(rèn)值,、名稱等。對(duì)數(shù)據(jù)層的控制,,目的是將表單的相關(guān)數(shù)據(jù)提取出來進(jìn)行處理,,并存放到后臺(tái)數(shù)據(jù)庫(kù)中。

4Word表單引擎的系統(tǒng)設(shè)計(jì)

4.1 需求分析

在政府,、企業(yè)中大量的以表單驅(qū)動(dòng)的業(yè)務(wù)流程中,,表單是處于核心地位的,,表單的樣式、內(nèi)容和組合方式?jīng)Q定了業(yè)務(wù)的種類和特點(diǎn),。因此,,客觀上要求表單引擎在工作流管理系統(tǒng)中應(yīng)該成為核心部件,并以此作為整個(gè)系統(tǒng)設(shè)計(jì)的根本原則和出發(fā)點(diǎn),。

在軟件開發(fā)的開始階段,,通常由用例圖來描述客戶的需求,用例圖用圖形化的方式表示系統(tǒng)需求,,具有簡(jiǎn)單,、直觀的特點(diǎn)。Word表單引擎的用例圖如下:

3 用例圖

Fig.3 Use-Case Diagram

4.2 總體設(shè)計(jì)

從總體架構(gòu)上分析,,工作流管理系統(tǒng)是以表單引擎為核心和基礎(chǔ)的一套懸掛式系統(tǒng),表單引擎的內(nèi)部結(jié)構(gòu)以及與其他子系統(tǒng)的關(guān)系如圖4所示:

4 表單引擎結(jié)構(gòu)

Fig.4 Structure of the Form Engine

表單定義工具屬于表單信息模型中的表示層,。根據(jù)表單定義創(chuàng)建表單,,包括表單樣式和表單域。

表單管理器,、表單調(diào)度管理器和訪問控制管理器同屬于表單信息模型中的控制層,。表單管理器主要功能包括創(chuàng)建新表單、修改現(xiàn)存表單和刪除表單等操作,。表單調(diào)度管理器在工作流引擎的支持下,,實(shí)現(xiàn)表單的發(fā)布和提交。訪問控制管理器在相關(guān)服務(wù)系統(tǒng)得支持下,,對(duì)組織機(jī)構(gòu)中與該業(yè)務(wù)相關(guān)的參與者進(jìn)行訪問控制,。

表單數(shù)據(jù)屬于表單信息模型中的數(shù)據(jù)層。其中,,持久化數(shù)據(jù)是指表單中的各個(gè)元素,,將以模板的形式整體存入模板庫(kù)。動(dòng)態(tài)數(shù)據(jù)是指表單域中的數(shù)據(jù),,在提交的同時(shí)會(huì)發(fā)送到數(shù)據(jù)庫(kù)中相應(yīng)的數(shù)據(jù)表中,。數(shù)據(jù)訪問基礎(chǔ)服務(wù)則通過ADO(ActiveX Data Objects)來實(shí)現(xiàn)表單引擎與后臺(tái)數(shù)據(jù)庫(kù)的連接。

4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)

根據(jù)系統(tǒng)的總體設(shè)計(jì),,表單引擎的數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖5所示:

5 數(shù)據(jù)庫(kù)設(shè)計(jì)

Fig.5 Database Design

其中,,表單和數(shù)據(jù)項(xiàng)之間是一對(duì)多的關(guān)系,它們共同構(gòu)成表單模板,。表單實(shí)例和數(shù)據(jù)實(shí)例之間也是一對(duì)多的關(guān)系,,它們構(gòu)成具體的表單實(shí)例。同樣,,同一表單模板也可創(chuàng)建多個(gè)表單實(shí)例,。

5Word表單引擎的系統(tǒng)設(shè)計(jì)

5.1 Word電子表單的創(chuàng)建

1)創(chuàng)建表單樣式,。根據(jù)相關(guān)的業(yè)務(wù)需求和規(guī)范,利用Word所提供的功能,,可以在已有的Word文檔上進(jìn)行修改,,也可以重新定義一份表單。這樣完成的表單是靜態(tài)的,,不具有數(shù)據(jù)交互能力,。

2)添加表單域。將創(chuàng)建表單域的功能以Word工具欄的形式提供給用戶,。Word中,,CommandBars集合代表 Microsoft Word 中的菜單欄和所有的工具欄,要自定義工具欄,,首先創(chuàng)建CommandBars對(duì)象,,如:myCommandBar,通過CommandBars.Add()方法將其添加到CommandBars集合,再定義各Button對(duì)象,再用myCommandBar.Controls.Add()方法將自定義Button對(duì)象添加到工具欄,。

表單域?qū)嵸|(zhì)上是ActiveX控件,,在Word中可用OLE編程標(biāo)識(shí)符(有時(shí)也稱ProgID)創(chuàng)建Automation對(duì)象。表1列出了AxtiveX控件的OLE編程標(biāo)識(shí)符[4],。


1 ActiveX控件的OLE編程標(biāo)識(shí)符

Tab.1 OLE programmatic identifier of the ActiveX controls

控件名稱

OLE編程標(biāo)識(shí)符

控件名稱

OLE編程標(biāo)識(shí)符

標(biāo)簽

Forms.Label.1

框架

Forms.Frame.1

文本框

Forms.TextBox.1

圖像

Forms.Image.1

復(fù)選框

Forms.CheckBox.1

滾動(dòng)條

Forms.ScrollBar.1

組合框

Forms.ComboBox.1

命令按鈕

Forms.CommandButton.1

列表框

Forms.ListBox.1

選項(xiàng)按鈕

Forms.OptionButton.1

要在光標(biāo)所在處添加表單域,,需要用到Selection對(duì)象和InlineShapes集合對(duì)象,前者代表某個(gè)選定的范圍或插入點(diǎn),,后者代表文檔,、區(qū)域或選定內(nèi)容中的所有嵌入式圖形。利用InlineShapes集合對(duì)象的AddOLEControl方法,,并設(shè)置ClassType(對(duì)象類型)的值為相應(yīng)的OLE編程標(biāo)識(shí)符,,可以將控件添加至文檔,如:添加文本框:ClassType:="Forms.TextBox.1",。

為使表單域能通過鼠標(biāo)拖動(dòng)而自由移動(dòng)位置,,需要將InlineShapes對(duì)象轉(zhuǎn)換位Shape對(duì)象,可以使用ConvertToShape方法來完成圖形的類型轉(zhuǎn)換,。

5.2 Word電子表單的維護(hù)

維護(hù)一張已創(chuàng)建的Word電子表單,,可使用Word自身的功能編輯表單樣式,使用表單引擎的擴(kuò)展功能修改其中的表單域,。以編輯文本框?yàn)槔?,主要涉及到的屬?/SPAN>[4]如表2所示:

2 文本框常用屬性

Tab.2 Common properties of the TextBox Object

屬性名稱

功能描述

屬性名稱

功能描述

Name

名稱,唯一標(biāo)識(shí)

TextAline

文本對(duì)齊方式(left,center,right)

Text

文本框的取值

ScrollBars

滾動(dòng)條(horizontal,vertical,both)

Height

高度

Backcolor

背景色

Width

寬度

Bordercolor

邊框色

PassWordChar

密碼字符

Visible

可見性

Multiline

多行顯示(True,False)

Enabled

可用性

在為Application對(duì)象編寫過程之前,,必須創(chuàng)建新的類模塊并聲明一個(gè)包含事件的Application類型對(duì)象,。例如,假定已創(chuàng)建新的類模塊并命名為EventClassModule,。該類模塊包含下列代碼:

Public WithEvents App As Word.Application

定義了包含事件的新對(duì)象后,,為其編寫事件過程,,雙擊鼠標(biāo)時(shí),App_WindowBeforeDoubleClick()事件發(fā)生,,單擊鼠標(biāo)右鍵,,App_WindowBeforeRightClick()事件發(fā)生,在相應(yīng)的過程中自定義功能,。

在運(yùn)行過程前,,必須將類模塊中已聲明的對(duì)象連接到Application對(duì)象,可在任何模塊中實(shí)現(xiàn)過程:Register_Event_Handler(),,使App對(duì)象指向Microsoft Word Application,。事件發(fā)生時(shí),將運(yùn)行類模塊中的事件過程,,即根據(jù)對(duì)象的不同類型,,彈出相應(yīng)的屬性設(shè)置窗體,對(duì)各個(gè)屬性進(jìn)行設(shè)置,。

5.3 訪問控制

表單引擎可以對(duì)組織機(jī)構(gòu)中的各個(gè)角色以及個(gè)人進(jìn)行權(quán)限設(shè)置,,主要支持3種類型的訪問控制:

(1) 對(duì)Word自身功能的控制

(2) 對(duì)表單引擎擴(kuò)充功能的控制

(3) 對(duì)表單域的訪問控制

Word菜單欄、工具欄(包括表單引擎自定義的工具欄)中的每一個(gè)子項(xiàng)目都有唯一的標(biāo)識(shí),,通過該標(biāo)識(shí)可以設(shè)置每一個(gè)項(xiàng)目的可見性與可用性,對(duì)應(yīng)于VisibleEnabled屬性,,從而達(dá)到限制Word功能的目的,。

同樣,在表單中的表單域?qū)ο笫且粋€(gè)集合,,通過ActiveDocument.Shapes.count可以統(tǒng)計(jì)出表單中表單域的總個(gè)數(shù),,其中的表單域?qū)ο罂杀硎緸?/SPAN>Shapes(i).OLEFormat.Object,其中i是索引號(hào),,因此只需對(duì)各個(gè)對(duì)象的Visible,、Enabled屬性進(jìn)行相應(yīng)得設(shè)置,即可實(shí)現(xiàn)對(duì)表單域的控制,。

5.4 使用Jmail組件發(fā)布表單

Word表單引擎不是基于B/S結(jié)構(gòu)的,表單的流轉(zhuǎn)方式是在郵件服務(wù)器的支持下,,通過E-Mail方式實(shí)現(xiàn)的。E-Mail服務(wù)和技術(shù)自從因特網(wǎng)建立到現(xiàn)在,,已經(jīng)發(fā)展的非常成熟,,普及率也很高,因此表單流轉(zhuǎn)采用E-Mail方式實(shí)現(xiàn),更容易被用戶接受和使用,。

在眾多的郵件發(fā)送組件中,,Jmail組件功能強(qiáng)大,可支持多種格式的郵件發(fā)送,,比如以HTMLTXT的方式發(fā)送,,用戶也可設(shè)置郵件發(fā)送的優(yōu)先級(jí)等,。Jmail支持發(fā)送附件,并具有密件發(fā)送/抄送/緊急信件發(fā)送能力,,此外Jmail能詳細(xì)的記錄日志,,便于維護(hù),最關(guān)鍵的是Jmail是免費(fèi)的,,因此可以降低開發(fā)成本,,所以非常值得使用。

在系統(tǒng)中注冊(cè)Jmail.dll控件,將控件添加到工程中,,就可以調(diào)用Jmail的各項(xiàng)功能,。例如:可以使用Subject屬性設(shè)定消息的標(biāo)題,用Body屬性設(shè)置郵件正文,,用Recipients,、Sender屬性指定收件人、發(fā)件人的郵件地址,,ServerAddress指定郵件服務(wù)器的地址等,,最后調(diào)用Execute()方法將表單送出。

5.5 表單引擎與數(shù)據(jù)庫(kù)的連接

表單引擎通過ADO(ActiveX Data Object)建立無源數(shù)據(jù)庫(kù)連接,。ADO[4]Microsoft數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)接口,,是建立在OLE DB之上的高層數(shù)據(jù)庫(kù)訪問技術(shù)。它封裝了OLE DB供的接口,,相比于OLE DB提供者,,ADO的接口可以使程序員在更高級(jí)別上進(jìn)行數(shù)據(jù)交互,大大簡(jiǎn)化了程序編制,,增加了程序的可移植性,。而采用無源數(shù)據(jù)庫(kù)連接方式,無需用戶配置ODBC環(huán)境,,利用ADO就可通過代碼進(jìn)行連接,。

在連接數(shù)據(jù)庫(kù)前,需要在工程中引入 Microsoft ActiveX Data Objects 2.0 Library,,然后創(chuàng)建Connection對(duì)象并設(shè)置ConnectionString屬性進(jìn)行連接,。ConnectionString為可讀寫string類型,用于指定一個(gè)連接字符串,,告訴ADO如何連接數(shù)據(jù)庫(kù),,如:

ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=DB_NAME;Data Source=127.0.0.1"

其中Initial Catalog指定數(shù)據(jù)庫(kù)的名稱,Data Source指定數(shù)據(jù)庫(kù)服務(wù)器的IP地址,。

open方法打開建立的連接,,創(chuàng)建結(jié)果集對(duì)象Recordset,根據(jù)需求編寫SQL語(yǔ)句,,利用Connection對(duì)象的Execute()方法可將結(jié)果集返回到客戶端,,進(jìn)行各種處理,。

最后用Connection對(duì)象的Close方法關(guān)閉已建立的連接。

6.結(jié)論

傳統(tǒng)的基于HTML/XML表單的工作流管理系統(tǒng)(WFMS),,在用戶友好性,、擴(kuò)展性和靈活性方面存在較大的缺陷,采用基于Word的表單引擎能夠很好的解決這些問題,。在實(shí)踐中,,我們已經(jīng)將Word表單引擎與工作流管理系統(tǒng)集成,通過在具體業(yè)務(wù)中的應(yīng)用和對(duì)應(yīng)用情況的認(rèn)真分析,,得出結(jié)論如下:

(1) 基于Word構(gòu)建的工作流表單引擎能使用戶輕松的創(chuàng)建,、維護(hù)各種動(dòng)態(tài)電子表單而不需要用戶具有專業(yè)的技術(shù),且能對(duì)企業(yè),、政府中現(xiàn)存的大量靜態(tài)電子表單進(jìn)行升級(jí),,較好的解決了各種表單驅(qū)動(dòng)的業(yè)務(wù)流程中表單的不確定性問題。

(2) Word表單引擎采用電子郵件作為表單流轉(zhuǎn)的方式,,提高了工作流系統(tǒng)的靈活性和易用性,,較好的解決了各種表單驅(qū)動(dòng)的業(yè)務(wù)中流程的不確定性問題。

(3) Word電子表單繼承了Microsoft Word的全部功能,,功能強(qiáng)大,,操作簡(jiǎn)單,且具有所見即所得的打印特性,,使得政府或企業(yè)可以輕松完成電子表單的打印存檔工作,,而且用戶不需要花費(fèi)專門的時(shí)間和經(jīng)費(fèi)接受培訓(xùn),就可以很好的適應(yīng)系統(tǒng),,從多方面為組織降低成本。

 

基于表單的分布式工作流系統(tǒng)研究與實(shí)現(xiàn)

http://www.docin.com/p-130337217.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多