WEB環境下辦公自動化文檔修改痕跡保留的實現

 

一、痕跡保留的現狀與思考

隨着政府機關和許多企事業單位網絡建設逐步完成,對於在如何利用網絡,如何表現出網絡的優勢方面,用戶最容易想到,同時也是最容易產生效果的應用,就是辦公自動化系統(OA)。在當前的軟件開發實踐中,B/S模式(瀏覽器/服務器模式)的開發可以採用三層結構,前端服務層、中間業務層、後臺數據庫。由於其擴展性好,數據安全性高,同時無須考慮客戶端的兼容性,解決了C/S模式二層結構的諸多侷限性,因而在辦公自動化系統中得到了廣泛的應用。

修改痕跡的保留是辦公自動化系統的一個難點,很多基於B/S模式的OA系統處理的方法是:Word文件只是簡單的作爲一個表單附件,在需要使用的時候調出來進行操作。但這一方法的缺點是沒有對Word文檔進行相關的控制。公文所要求的格式需要流程走完後由祕書或相關人員對Word文檔進行相關處理,生成正式文件,在打印時無法滿足國家對公文格式的要求。還有一種做法就是使用一個RTF域來代替Word,但這樣做是以犧牲了用戶的習慣和字處理功能爲代價的,而且效果往往不見得理想。

目前,修改痕跡的保留較好的處理辦法有兩種,一種是重新設計專用編輯器,另一種是調用MS Office字處理軟件,通過對Word的編程,實現對修改痕跡的保留。從理論和實踐上來看,第一種辦法比較好,利用嵌入在HTML頁面內的專用圖文混排控件,我們可以方便的加強客戶端的顯示及處理功能,減少開發工作量,提高軟件質量。

二、第三方控件的介紹

辦公之星控件(OStarOCX)是智島軟件公司(http://www.standsoft.com)推出的一款基於圖文混排的文檔處理控件(類似Word的控件),辦公之星控件(OStarOCX)完全封裝了辦公之星的文字、圖形、表格、圖表等功能,提供了幾百個編程接口;在ERP、CRM、HR、OA等系統裏,開發難度非常大的文檔處理、統計、報表等輸出功能都可由辦公之星控件(OStarOCX)輕鬆實現,其所見即所得的效果跟現實裏的完全一樣。辦公之星控件(OStarOCX)是一個標準的OCX控件,適用於Windows環境的各種開發工具(如VB,VC,Delphi, C+Builder, PB, Java等), 並且針對Web開發環境做了大量的優化。

三、痕跡保留的具體實現

第三方控件在WEB環境下辦公自動化程序中的運用,極大豐富了辦公自動化程序的功能和應用範圍。要在WEB環境中使用辦公之星控件,必須首先將控件加入WEB編程環境,然後我們就可使用辦公之星控件的各種接口了。

1. 辦公之星控件相關接口方法說明

方法 BSTR GetCurUser() 返回當前用戶名稱
方法 SetCurUser(LPCTSTR strName) 設置當前用戶名稱
方法 SetEmendState(BOOL bEmend) 設置修訂狀態.b爲TRUE時爲修訂狀態,爲FALSE時爲非修訂狀態
方法 BOOL GetEmendState() 返回修訂狀態.b爲TRUE時爲修訂狀態,爲FALSE時爲非修訂狀態
方法 ShowEmendDlg() 顯示接受或拒絕修訂對話框
方法 PrevFindEmend() 往後查找修訂
方法 NextFindEmend() 向前查找修訂
方法 AcceptEmend() 接受單個修訂
方法 AcceptAllEmend() 接受所有修訂
方法 RefuseEmend() 拒絕單個修訂
方法 RefuseAllEmend() 拒絕所有修訂

2. 設定批改文檔的用戶

默認狀態下文檔的修改用戶爲超級管理員(admin),在對文檔進行操作前我們通常要設定批改操作的用戶。例:

OStar.SetCurUser("張三")

上述代碼(javascript腳?設定當前文檔的操作者爲“張三”。上面代碼中“OStar”(下面代碼同)是程序中標識辦公之星控件的惟一名字,在插入控件時通過id進行設置。

3. 實現對修改的留痕

在web文檔裏做一按鈕,實現對修改留痕的控制。該按鈕實現功能源程序(javascript腳本)爲:

if(OStar.GetEmendState()){
   OStar.SetEmendState(0);
   window.status="";
}else{
   OStar.SetEmendState(1);
   window.status="修訂中...";
}

該按鈕爲一開關按鈕,能夠在留痕與正常編輯狀態間切換。

4. 查看修改

各操作按鈕功能及實現代碼如下:

function PrevFindEmend(){
   OStar.PrevFindEmend();//前一處修訂
}

function NextFindEmend(){
   OStar.NextFindEmend();//下一處修訂
}

5. 接受或拒絕修改

各操作按鈕功能及實現代碼如下:

function AcceptEmend(){
   OStar.AcceptEmend();//接受修訂
}

function RefuseEmend(){
   OStar.RefuseEmend();//拒絕修訂
}

function AcceptAllEmend(){
   OStar.AcceptAllEmend();//全部接受
}

function RefuseAllEmend(){
   OStar.RefuseAllEmend;//全部拒絕
}

四、痕跡保留實現效果

通過上述編程,實現了OA與圖文混排文檔的無縫集成,保證了所有對於修改痕跡的惡意操作都無法通過系統的認可,確保批改人員的修改意圖不被扭曲或是誤解,保證了信息交流的安全性。同時可以充分利用辦公之星控件強大的編輯功能,隨時查閱領導修改和批註的要點,又避免了成文後打印前存在的成文版本與打印文本有出入的漏洞,可以明確各個環節的責任。痕跡保留實現的效果如下圖:

CSDN_Dev_Image_2003-12-31712571.gif

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章