国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Infopath實(shí)現(xiàn)WEB動(dòng)態(tài)表單的研究

2012-12-17 10:49:06天地常州自動(dòng)化股份有限公司陳小林
電子世界 2012年24期
關(guān)鍵詞:表單后綴控件

天地(常州)自動(dòng)化股份有限公司 陳小林 趙 亮 韓 安

1.引言

在筆者煤礦信息化項(xiàng)目的具體實(shí)施應(yīng)用中,很多業(yè)務(wù)功能都需要通過(guò)WEB方式進(jìn)行簡(jiǎn)單數(shù)據(jù)收集,通用的做法是根據(jù)每個(gè)業(yè)務(wù)需求點(diǎn)利用ASP.NET進(jìn)行定制開發(fā),這種做法工作效率低,編程的重復(fù)性較高,工作量大。研究一個(gè)快速構(gòu)建數(shù)據(jù)收集WEB表單系統(tǒng)有助于提高工作效率,將工作重心更好的放在關(guān)注核心業(yè)務(wù)功能實(shí)現(xiàn)上。

2.WEB動(dòng)態(tài)表單

WEB動(dòng)態(tài)表單系統(tǒng)借助于Office InfoPath來(lái)實(shí)現(xiàn)表單設(shè)計(jì),由于Office InfoPath支持行業(yè)標(biāo)準(zhǔn)的可擴(kuò)展標(biāo)記語(yǔ)言(XML)。完全的XML支持使用戶通過(guò)InfoPath可以在公司間和業(yè)務(wù)進(jìn)程間共享信息?;诖?,將設(shè)計(jì)后的Office InfoPath表單使用轉(zhuǎn)換程序轉(zhuǎn)換成使用ASP.NET技術(shù)實(shí)現(xiàn)的WEB動(dòng)態(tài)表單,從而實(shí)現(xiàn)基于WEB的數(shù)據(jù)展現(xiàn)及收集。

InfoPath的表單模板是通過(guò)XML、XSD(XML架構(gòu))、XSL、CSS等一系列文件的集合(.XSN后綴結(jié)尾的文件包)來(lái)定義。通過(guò)解包InfoPath模板文件,可以看到如下幾個(gè)部分內(nèi)容文件:

(1)一個(gè)或多個(gè)XML架構(gòu)文件,該文件用于驗(yàn)證和約束表單模板中的數(shù)據(jù)。與表單模板關(guān)聯(lián)的每個(gè)數(shù)據(jù)源都具有相應(yīng)的.xsd文件。

(2)對(duì)應(yīng)于表單模板中每個(gè)視圖的XSL轉(zhuǎn)換文件。通過(guò)該文件可查看供用戶填寫的表單中所含的顯示數(shù)據(jù)并且將這些數(shù)據(jù)轉(zhuǎn)換為HTML文件。

(3)用戶首次打開基于該表單模板的表單文件時(shí)默認(rèn)的XML數(shù)據(jù)內(nèi)容文件。該文件包含表單模板顯示在特定控件中的默認(rèn)數(shù)據(jù)。當(dāng)首次打開表單時(shí)將調(diào)用并且顯示這些數(shù)據(jù),直到用戶在控件中選擇了其他值。

(4)腳本文件或托管代碼程序集。利用.vbs和.js這些解釋性語(yǔ)言實(shí)現(xiàn)特定表單行為的腳本。利用.dll、.exe、.cab等提供編程代碼和其他業(yè)務(wù)邏輯的外部文件。

(5)名為Manifest.xsf的表單定義文件,該文件包含有關(guān)表單內(nèi)使用的所有其他文件和組件的信息,包括用戶界面自定義、XML架構(gòu)、視圖及部署設(shè)置等。

WEB動(dòng)態(tài)表單的實(shí)現(xiàn)總體思路也就是將以上所提的解包文件通過(guò)程序進(jìn)行轉(zhuǎn)換,從而形成基于Infopath模板文件,采用ASP.NET技術(shù)實(shí)現(xiàn)的WEB動(dòng)態(tài)表單。

3.WEB動(dòng)態(tài)表單功能定義

WEB動(dòng)態(tài)表單系統(tǒng)首先可以通過(guò)Office InfoPath來(lái)創(chuàng)建或者修改表單模板,然后將表單模板上傳到Asp.net WEB系統(tǒng)中,通過(guò)編寫基于XSL的XML轉(zhuǎn)換程序分析并且轉(zhuǎn)換該表單模板,添加Asp.net頁(yè)面的必須信息,關(guān)聯(lián)Asp.net頁(yè)面的前后臺(tái)執(zhí)行代碼,最后生成以ASP.NET技術(shù)展現(xiàn)的動(dòng)態(tài)表單。實(shí)際使用中將InfoPath表單模板發(fā)布到系統(tǒng)中后,用戶所需要做的只是通過(guò)WEB來(lái)瀏覽和填寫表單,無(wú)需任何的控件支持。

3.1 表單系統(tǒng)功能設(shè)計(jì)

(1)生成與InfoPath模板擁有一樣外觀的Asp.net表單。

(2)轉(zhuǎn)換Infopath部分控件和用戶自定義控件成相應(yīng)的Asp.net WebControls控件:TextBox、CheckBox、DatePicker、RadioButton、DropDownList。

(3)可以自定義動(dòng)態(tài)表單頭和動(dòng)態(tài)表單腳顯示的內(nèi)容。

(4)應(yīng)用XML的數(shù)據(jù)格式定義文件結(jié)合業(yè)務(wù)系統(tǒng)數(shù)據(jù)校驗(yàn)接口(例如,對(duì)表單上所輸入的姓名進(jìn)行是否存在及是否輸入正確的校驗(yàn)),自動(dòng)進(jìn)行表單輸入數(shù)據(jù)的動(dòng)態(tài)校驗(yàn)。

3.2 表單管理部分功能

(1)發(fā)布表單:完成Infopath表單模板的上傳及解包功能。

(2)配置表單:完成上傳的Infopath表單模板解包之后的分析及轉(zhuǎn)換功能,將通過(guò)轉(zhuǎn)換形成的ASP.NET WEB表單模板、WEB數(shù)據(jù)驗(yàn)證文件、WEB表單默認(rèn)數(shù)據(jù)填充文件等以文件存儲(chǔ)的方式進(jìn)行歸類存儲(chǔ)。

(3)刪除表單:根據(jù)需要?jiǎng)h除選中的WEB表單模板。

4.Web動(dòng)態(tài)表單轉(zhuǎn)換引擎的設(shè)計(jì)

通過(guò)ASP.NET編寫轉(zhuǎn)換邏輯以實(shí)現(xiàn)Web表單的轉(zhuǎn)換。通過(guò)四個(gè)步驟的轉(zhuǎn)換來(lái)實(shí)現(xiàn)可在瀏覽器里進(jìn)行瀏覽、編輯、提交的WEB動(dòng)態(tài)表單。第一步將Infopath模板文件解包后,隨后三個(gè)步驟中每個(gè)轉(zhuǎn)換步驟中都使用解包后的XSLT文件來(lái)實(shí)現(xiàn)。

第一步:Infopath模板文件解包。

Infopath的模板文件是一個(gè)后綴為xsn的文件,等同于通常所見的cab文件,通過(guò)調(diào)用一個(gè)Windows自帶的工具extract.exe來(lái)實(shí)現(xiàn)文件的解包。解包后有六個(gè)文件:manifest.xsf、myschema.xsd、sampledata.xml、template.xml、upgrade.xsl、view1.xsl。其中XML后綴的文件是模板默認(rèn)數(shù)據(jù),XSD后綴的文件是數(shù)據(jù)Schema,而XSL后綴的文件則是表現(xiàn),主要是配色方案。接下來(lái)的三個(gè)轉(zhuǎn)換步驟都是圍繞這六個(gè)文件展開。

第二步:InfoPathToXml XSL轉(zhuǎn)換。

該轉(zhuǎn)換負(fù)責(zé)讀取InfoPath視圖(例如,view1.xsl),并且創(chuàng)建一個(gè)適合于InfoPath讀取的模板(Template.xml中的XSLT)。InfoPathToXml轉(zhuǎn)換實(shí)現(xiàn)在InfoPath controls和ASP.NET控件之間進(jìn)行映射,即找到與InfoPath controls功能相對(duì)應(yīng)的ASP.NET控件,并且更改相應(yīng)的XML描述標(biāo)簽,例如:InfoPath controls的下拉列表框?qū)?yīng)ASP.NET控件中的Dropdown List,在轉(zhuǎn)換后該控件的描述標(biāo)簽即為“

第三步:XmlToAspxHtml XSL轉(zhuǎn)換。

該轉(zhuǎn)換負(fù)責(zé)添加一個(gè)ASP.NET頁(yè)面的頁(yè)面頭,附加該頁(yè)面所需要的樣式表及腳本庫(kù)的引用,以及指定該頁(yè)面執(zhí)行時(shí)使用的是哪個(gè)Code-Behide。

第四步:XmlToHtml XSL轉(zhuǎn)換。

該轉(zhuǎn)換負(fù)責(zé)創(chuàng)建一個(gè)等同于XSL樣式表樣式的HTML頁(yè)面從而可以以只讀方式顯示XML數(shù)據(jù)。

5.WEB動(dòng)態(tài)表單模板及表單數(shù)據(jù)管理

考慮到WEB動(dòng)態(tài)表單模板基于XML技術(shù)構(gòu)建,所以表單模板的存儲(chǔ),設(shè)計(jì)不采用數(shù)據(jù)庫(kù)存儲(chǔ),而是以一個(gè)文件夾集合方式進(jìn)行存儲(chǔ),囊括了從Infopath模板轉(zhuǎn)換而來(lái)的多個(gè)文件,如圖1示為轉(zhuǎn)換后的WEB表單模板文件集。

針對(duì)WEB動(dòng)態(tài)表單運(yùn)行時(shí)數(shù)據(jù),考慮整個(gè)WEB動(dòng)態(tài)表單基于XML構(gòu)建,設(shè)計(jì)將表單數(shù)據(jù)直接以XML文本進(jìn)行存儲(chǔ),在相應(yīng)的數(shù)據(jù)庫(kù)中記錄該數(shù)據(jù)文件在服務(wù)器上的相對(duì)路徑,從而保證了以XML數(shù)據(jù)流方式同信息化系統(tǒng)的其他功能及業(yè)務(wù)模塊數(shù)據(jù)共享及互通,如圖2所示。

圖1 轉(zhuǎn)換后的WEB表單模板文件集

圖2 表單數(shù)據(jù)實(shí)體

通過(guò)將流程運(yùn)行時(shí)運(yùn)行數(shù)據(jù)與用戶提交數(shù)據(jù)及處理數(shù)據(jù)分別采用數(shù)據(jù)庫(kù)及文件兩種方式進(jìn)行存放有如下兩個(gè)好處:

第一,每個(gè)表單的XML數(shù)據(jù)文件不但可以通過(guò)反序列化進(jìn)入到流程運(yùn)行時(shí),與流程運(yùn)行時(shí)進(jìn)行無(wú)縫的銜接,也可以直接在Infopath中進(jìn)行規(guī)格化顯示,無(wú)需再進(jìn)行數(shù)據(jù)的導(dǎo)出導(dǎo)入操作。

第二,在每一個(gè)任務(wù)流程結(jié)束后可以方便的將每個(gè)XML數(shù)據(jù)文件直接轉(zhuǎn)換成存檔的格式化的文檔文件,從而每個(gè)任務(wù)流程處理的最終結(jié)果(格式化表單,審批痕跡,數(shù)據(jù))可以以文件方式進(jìn)行存檔、轉(zhuǎn)移、拷貝、打印、分發(fā)。

6.結(jié)論

通過(guò)本次研究,提出了將基于XML技術(shù)構(gòu)建的Office InfoPath客戶端與ASP.NET瀏覽器技術(shù)進(jìn)行有效結(jié)合構(gòu)建WEB動(dòng)態(tài)表單的思路,并給出了具體的實(shí)現(xiàn)路徑與步驟。實(shí)際應(yīng)用表明,該方案切實(shí)減少了在煤礦信息化項(xiàng)目中通用數(shù)據(jù)收集表單的程序編寫量,極大的提高了工作效率。

[1]R.Powell,R.Weeks,C#和.NET架構(gòu),袁鵬飛譯.北京:人民郵電出版社,2002.

[2]J.Richter,Applied Microsoft.Net Framework Programming,Microsoft Press,2002.

[3]Halstead,Patrick,Developing Solutions With Microsoft Infopath,Microsoft Press,2005.

猜你喜歡
表單后綴控件
電子表單系統(tǒng)應(yīng)用分析
華東科技(2021年9期)2021-09-23 02:15:24
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
淺談網(wǎng)頁(yè)制作中表單的教學(xué)
河北霸州方言后綴“乎”的研究
TalKaholic話癆
說(shuō)“迪烈子”——關(guān)于遼金元時(shí)期族名后綴問(wèn)題
一種基于后綴排序快速實(shí)現(xiàn)Burrows-Wheeler變換的方法
動(dòng)態(tài)表單技術(shù)在教學(xué)管理中的應(yīng)用*
就這樣玩會(huì)VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
基于Java可視化測(cè)繪生產(chǎn)流程表單的設(shè)計(jì)及實(shí)現(xiàn)
城口县| 德庆县| 东丰县| 宜章县| 通许县| 泗阳县| 万全县| 隆子县| 绍兴县| 曲松县| 清水河县| 津南区| 玉林市| 富顺县| 博湖县| 北宁市| 古田县| 鄢陵县| 洞头县| 通州市| 奈曼旗| 牟定县| 马山县| 库车县| 新疆| 金湖县| 石狮市| 佛学| 安远县| 桐城市| 台北县| 禹城市| 青河县| 吉安县| 杂多县| 松江区| 灵川县| 班戈县| 荃湾区| 太原市| 灌南县|