摘 要:介紹了智能文檔的概念以及什么是VSTO開發(fā)技術(shù);重點論述了基于VSTO的智能文檔技術(shù)在試油地質(zhì)設(shè)計中的應(yīng)用,用戶可在熟悉的Office界面中與企業(yè)數(shù)據(jù)庫關(guān)聯(lián)交互,實現(xiàn)方案的智能化生成,大大減少了數(shù)據(jù)查詢、數(shù)據(jù)計算、文檔編輯工作量,確保了方案設(shè)計的質(zhì)量與效率;最后,展望了VSTO技術(shù)在企業(yè)應(yīng)用中的前景。
關(guān)鍵詞:智能文檔VSTO試油地質(zhì)設(shè)計
中圖分類號:TP2文獻標識碼:A文章編號:1674-098X(2011)08(b)-0104-01
Microsoft Office是微軟公司開發(fā)的一套基于Windows操作系統(tǒng)的辦公軟件套裝。常用組件有Word、Excel、Access、Powerpoint、FrontPage等。
試油地質(zhì)設(shè)計方案生成的傳統(tǒng)方法是將分布零散的各相關(guān)數(shù)據(jù)手工進行查找,匯總計算,錄入編輯。這種操作模式缺乏電子文檔與數(shù)據(jù)庫間信息交互的自動化;缺乏對數(shù)據(jù)格式的規(guī)范統(tǒng)一;缺乏文檔編輯格式的控制;同時增加了設(shè)計人員的工作負荷;延長了設(shè)計時間。
本文提出了一種基于VSTO的智能文檔技術(shù),實現(xiàn)試油地質(zhì)設(shè)計方案的智能化生成,以提高工作效率與質(zhì)量。
1 智能文檔概述
智能文檔發(fā)起了一場對傳統(tǒng)文檔和信息系統(tǒng)的革命。它是結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的綜合體,通過嵌入業(yè)務(wù)邏輯使文檔具有一定的智能。智能文檔在原有文檔的基礎(chǔ)上提供了更加強大的交互功能,它可以直接在文檔中與后臺的業(yè)務(wù)處理系統(tǒng)打交道。業(yè)務(wù)類型主要以Word或者Excel文檔作為載體,直接與數(shù)據(jù)庫或業(yè)務(wù)系統(tǒng)實時動態(tài)交互,而不是另外編寫一套應(yīng)用,讓它具備排版、打印、數(shù)據(jù)表計算等功能。
試油地質(zhì)設(shè)計方案具有統(tǒng)一的Word文檔標準模板;大量數(shù)據(jù)信息取自企業(yè)數(shù)據(jù)庫;對數(shù)據(jù)的計算處理方法相同;對格式、排版要求嚴格。以上特點決定了試油地質(zhì)設(shè)計智能文檔結(jié)合VSTO、XML表述語言和.NET語言,在Word 2007的基礎(chǔ)上實現(xiàn)試油地質(zhì)設(shè)計方案的快速生成。
2 VSTO技術(shù)
長期以來,對于Office解決方案的開發(fā)都是使用VBA(Visual Basic for applications)來實現(xiàn)。雖然VBA易于使用,但卻存在用戶界面、布署、功能實現(xiàn)和安全性等方面的限制。
VSTO(Visual Studio Tools for the Microsoft Office System)是基于.NET Framework的Office開發(fā)技術(shù)。VSTO將Word文檔或Excel文檔轉(zhuǎn)換成了能夠進行編程的.NET類,使他們成為具有數(shù)據(jù)綁定功能的控件,我們可以像處理Windows Forms控件和其他.NET特征那樣對其進行編碼。可以說VSTO是VBA技術(shù)的.NET平臺化。無論你是創(chuàng)建簡單的數(shù)據(jù)錄入應(yīng)用程序還是復雜的企業(yè)解決方案,VSTO都使之變得容易。
3 解決方案實現(xiàn)
3.1 開發(fā)
3.1.1 新建項目
啟動visual Studio 2008,在新建項目中選擇“Word 2007文檔”,并輸入解決方案名稱及保存位置,在彈出的對話框中選擇“創(chuàng)建新文檔”。
3.1.2 編輯項目
進入后可以看到Word文檔設(shè)計器,在此進行界面與功能設(shè)計:
①試油地質(zhì)設(shè)計具有統(tǒng)一格式的標準模板,包含以下內(nèi)容:封面、目錄、頁眉頁腳、多級標題、正文段落、表格、圖片等。將模板拷貝到此,保持其格式。
②添加Bookmark宿主控件。本解決方案采取的主要設(shè)計思想為:將查找計算出的數(shù)據(jù)結(jié)果由智能文檔自動替換到模板相應(yīng)位置。為此將使用一定數(shù)量的Bookmark控件,設(shè)置到模板中需要替換內(nèi)容的位置,應(yīng)用其Text()屬性進行內(nèi)容替換。
③表格處理。試油地質(zhì)設(shè)計方案中所有表格格式固定。導入模板時,只留表頭。遇到表格,文檔將根據(jù)取出的數(shù)據(jù)進行分析判斷,進行表格行的添加、單元格定位、單元格合并、內(nèi)容替換等操作,并在程序中進行格式的設(shè)置,如數(shù)據(jù)居中顯示、行高、列寬等。
④任務(wù)窗格的設(shè)置。我們將文檔與數(shù)據(jù)庫的交互功能全部放到任務(wù)窗格來實現(xiàn)。根據(jù)試油地質(zhì)設(shè)計數(shù)據(jù)的來源、分類、數(shù)據(jù)間的關(guān)系等性質(zhì)將它們共分為16大類。在任務(wù)窗格中依次分塊實現(xiàn)各類數(shù)據(jù)的存取與處理。例如:試油井基礎(chǔ)數(shù)據(jù),在任務(wù)窗格中的Textbox中輸入此次設(shè)計的試油井井號、所屬油田區(qū)塊、試油層代碼等需要用戶確定的數(shù)據(jù)項,點擊“提交”按鈕,文檔根據(jù)以上基本信息到企業(yè)數(shù)據(jù)庫中進行查詢,將所有能夠查找到的相關(guān)數(shù)據(jù)信息取出,進行相應(yīng)替換操作。
3.2 安全與部署
VSTO本身沒有添加安全性功能,但由于你用Visual Studio來定制Office應(yīng)用程序,你可以使用.NET Framework的所有安全特性。VSTO使用.NET Framework的代碼訪問安全(Code Access Security,CAS)功能,默認是安全的,這意味著如果沒有給予特定的權(quán)限,則代碼不會運行。VSTO的另一個關(guān)鍵的安全設(shè)計原則是,文檔沒有包含代碼。這使得宏病毒很難傳播。
VSTO之所以兼具方便與高效的特性,正是因為它將代碼文件寫入dll中,將dll與Word文檔的關(guān)聯(lián)用一定形式隱藏起來。以此作為VSTO的最終體現(xiàn)形式為docx文件和dll文件,在部署程序時需要將兩個文件都部署到用戶機器上,其中用戶使用docx文件,該文件在打開時會自動調(diào)用dll文件。
VSTO支持若干概念上的部署模型,它們可以定義為本地/本地、本地/遠程和遠程/遠程。這里我們采用本地/遠程模型,這也是最常見的部署模型。文檔的副本在本地機器上,而程序集則是在服務(wù)器上。
4 結(jié)語
基于VSTO的試油地質(zhì)設(shè)計方案的智能化實現(xiàn),對試油地質(zhì)設(shè)計來說是一次全新的嘗試,改變了試油地質(zhì)設(shè)計以往的工作方式。使用VSTO不僅可以獲得.NET框架的強大功能和較高的生產(chǎn)率,還能獲得Office系統(tǒng)的擴展性和編程能力。使辦公軟件與企業(yè)信息管理系統(tǒng)真正結(jié)合起來。在企業(yè)信息化的進程中,將會越來越多的面臨此種需求,基于VSTO的智能文檔技術(shù)具有廣闊的發(fā)展前景。
參考文獻
[1]李永倫譯.Kathleen McGrathPaul Stubbs著.VSTO開發(fā)者指南.機械工業(yè)出版社,2009.
[2]Alvin Bruney著.Professional VSTO 2005:Visual Studio 2005 Tools for Office.吉林長白山出版社,2007.
[3]王永,羅龍艷,杜茂康,羅文龍,等,譯.Eric CarterEric Lippert著.VSTO開發(fā)者指南.電子工業(yè)出版社,2008.