黃戌霞
摘 要:在網(wǎng)絡(luò)應(yīng)用日益普及的今天,無(wú)紙化網(wǎng)絡(luò)辦公自動(dòng)化系統(tǒng)的應(yīng)用將是目前企事業(yè)單位提高辦公效率的一個(gè)必然趨勢(shì)。該文從網(wǎng)上辦公系統(tǒng)建設(shè)的實(shí)際出發(fā),首先簡(jiǎn)單地闡述了辦公自動(dòng)化系統(tǒng)的開(kāi)發(fā)背景,接著簡(jiǎn)要介紹了網(wǎng)上辦公系統(tǒng)的設(shè)計(jì)方案,詳細(xì)介紹了系統(tǒng)的主要功能模塊的劃分,重點(diǎn)介紹了基于ASP進(jìn)行設(shè)計(jì)和開(kāi)發(fā)的論壇的具體實(shí)現(xiàn)方法和關(guān)鍵技術(shù),以及利用ASP控件訪問(wèn)WEB數(shù)據(jù)庫(kù)服務(wù)器的方法和技巧。
關(guān)鍵詞:數(shù)據(jù)庫(kù) ASP Access OA B/S模式
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2015)10(c)-0008-03
辦公自動(dòng)化系統(tǒng)(Office Automation System簡(jiǎn)稱(chēng)OAS),是伴隨著企業(yè)對(duì)信息化建設(shè)和Internet技術(shù)的廣泛應(yīng)用而應(yīng)運(yùn)而生的[1]。該系統(tǒng)采用B/S模式開(kāi)發(fā),將ASP技術(shù)和Access數(shù)據(jù)庫(kù)相結(jié)合,實(shí)現(xiàn)了信息從表態(tài)發(fā)布向動(dòng)態(tài)發(fā)布的轉(zhuǎn)變。
1 系統(tǒng)的運(yùn)行環(huán)境與開(kāi)發(fā)平臺(tái)
系統(tǒng)選擇Windows 2000 Server作為構(gòu)建該系統(tǒng)網(wǎng)絡(luò)基礎(chǔ)平臺(tái),用ASP(Active Server Pages,活動(dòng)服務(wù)器網(wǎng)頁(yè))和ACCESS結(jié)合,創(chuàng)建和運(yùn)行動(dòng)態(tài)、交互、高效的Web服務(wù)器應(yīng)用程序[2]。
該系統(tǒng)采用基于WEB的B/S模式平臺(tái),如圖1所示。
2 系統(tǒng)的總體設(shè)計(jì)
該網(wǎng)上辦公系統(tǒng)的主要功能如圖2所示。
3 與數(shù)據(jù)庫(kù)的連接
在Web數(shù)據(jù)庫(kù)中,用戶通過(guò)瀏覽器就可以方便地完成對(duì)后臺(tái)數(shù)據(jù)庫(kù)中數(shù)據(jù)的插入、刪除、查詢和修改等操作,這樣的模式極大地簡(jiǎn)化了操作過(guò)程,為用戶使用后臺(tái)數(shù)據(jù)庫(kù)中的數(shù)據(jù)提供了便利[3]。
下面以會(huì)議管理模塊為例,介紹其具體的實(shí)現(xiàn)方法和技術(shù)。
3.1 實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接
在該系統(tǒng)的設(shè)計(jì)中,把此連接數(shù)據(jù)庫(kù)語(yǔ)句存儲(chǔ)到一個(gè)獨(dú)立的文件conn.asp并放在文件夾Connection下,這樣在每次訪問(wèn)數(shù)據(jù)庫(kù)時(shí),無(wú)須重復(fù)編程,只要包括該文件即可,減少了代碼的冗長(zhǎng)[4]。
3.2 訪問(wèn)數(shù)據(jù)庫(kù)
通過(guò)使用ADO中的Connection和Recordset對(duì)象就能夠?qū)崿F(xiàn)對(duì)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)[5]的訪問(wèn)。結(jié)合SQL命令,設(shè)定查詢條件,對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢。
3.3 關(guān)閉數(shù)據(jù)連接
在使用結(jié)束后要及時(shí)關(guān)閉與數(shù)據(jù)庫(kù)的連接,避免占用資源。
4 主要模塊功能的實(shí)現(xiàn)
4.1 會(huì)議管理模塊
在一個(gè)企業(yè)中,大大小小的會(huì)議是必不可少的。那怎樣才能在最短的時(shí)間內(nèi)將會(huì)議的時(shí)間、地點(diǎn)等信息通知到位呢?會(huì)議管理模塊就是在這種需求下產(chǎn)生的。在這里,所有的員工都可以看到會(huì)議記錄,但是只有擁有“系統(tǒng)”或“讀寫(xiě)”權(quán)限的用戶才可以錄入、刪除會(huì)議記錄。
4.1.1 會(huì)議的錄入
在錄入會(huì)議各項(xiàng)信息時(shí),先判斷會(huì)議時(shí)間是否為空,如果為空提示輸入會(huì)議時(shí)間,如果不為空且輸入格式符合提示標(biāo)準(zhǔn),則接著判斷會(huì)議主持人是否為空,若為空則提示輸入主持人,若不為空則接著判斷下一個(gè)要輸入的信息,直到所有信息都不為空時(shí),向數(shù)據(jù)庫(kù)提交該新記錄。
4.1.2 會(huì)議的刪除
當(dāng)會(huì)議已經(jīng)過(guò)了有效期,這時(shí)系統(tǒng)管理員就應(yīng)該對(duì)這些記錄進(jìn)行管理。只有管理員才能有刪除的操作。判斷權(quán)限的關(guān)鍵代碼如下:
if trim(rs_user("purview"))<>"只讀" then
如果確定要?jiǎng)h除,其代碼如下:
<% Del= "DELETE FROM Tab_meeting WHERE ID =
"&request.querystring("ID")&" "
conn.Execute(Del) %>
4.2 論壇模塊的結(jié)構(gòu)、原理
論壇可以提供開(kāi)放性的討論區(qū),用戶可以在此發(fā)表自己的觀點(diǎn)、交流技術(shù)、經(jīng)驗(yàn)等,其他用戶可跟貼發(fā)表自己的見(jiàn)解。
4.2.1 用戶的權(quán)限
訪問(wèn)論壇的用戶分為兩種:
(1)可登錄系統(tǒng)的所有人員。這些用戶可以在論壇內(nèi)瀏覽帖子、發(fā)布帖子、搜索感興趣的帖子、回復(fù)關(guān)注的帖子。
(2)論壇管理員。除可享有上述權(quán)利外還可以編輯、刪除所有的帖子,修改論壇的設(shè)置。
4.2.2 帖子的顯示
這是論壇的主要部分,它顯示出了論壇數(shù)據(jù)庫(kù)中所有帖子的主題、作者、人氣、回復(fù)、最后回復(fù)時(shí)間等信息,便于訪問(wèn)者檢索、查閱。
4.2.3 帖子內(nèi)容的顯示
當(dāng)用戶點(diǎn)擊某一帖子的標(biāo)題時(shí),將會(huì)看到該帖的內(nèi)容及所以回復(fù)該貼的標(biāo)題和內(nèi)容。
4.2.4 回復(fù)他人提交的帖子
當(dāng)用戶對(duì)某一帖子的內(nèi)容感興趣,需要回答或發(fā)表看法時(shí),該用戶將提交一份新帖子到論壇的數(shù)據(jù)庫(kù),作為回復(fù)前者的帖子。該帖子的標(biāo)題和內(nèi)容只有在顯示被回復(fù)的帖子的內(nèi)容時(shí)才被順序(按發(fā)布的時(shí)間先后順序)顯示出來(lái)。例:A發(fā)布了一個(gè)新貼,B、C、D先后對(duì)該貼子進(jìn)行了回復(fù)。當(dāng)其他用戶再去瀏覽A所發(fā)布的帖子時(shí)依次看到的是A帖子的標(biāo)題和內(nèi)容、B帖子的標(biāo)題和內(nèi)容、C帖子的標(biāo)題和內(nèi)容。
4.2.5搜索帖子
用戶可以根據(jù)自己的需要輸入所要查詢的帖子的主題進(jìn)行搜索。
4.2.6 聯(lián)系我們
在此頁(yè)面中,用戶可以就系統(tǒng)問(wèn)題與開(kāi)發(fā)人員進(jìn)行聯(lián)系。將鼠標(biāo)移至郵箱地址處點(diǎn)擊即可直接發(fā)送Email,為用戶節(jié)省時(shí)間。
4.2.7 論壇幫助
簡(jiǎn)要的介紹了論壇的使用規(guī)則及注意事項(xiàng)。
下面將重點(diǎn)討論幾個(gè)具有典型性的子模塊的設(shè)計(jì)思想和實(shí)現(xiàn)過(guò)程。
4.3 分頁(yè)顯示帖子主題
鑒于論壇頁(yè)面的可視性,當(dāng)包含很多記錄而無(wú)法顯示在同一頁(yè)時(shí),要對(duì)帖子進(jìn)行分頁(yè)設(shè)置來(lái)顯示。該模塊就可以實(shí)現(xiàn)將數(shù)據(jù)庫(kù)中的帖子主題按最后回復(fù)時(shí)間的降序排列分頁(yè)顯示出來(lái),并在顯示頁(yè)面底部顯示帖子總數(shù)和頁(yè)數(shù)。
在創(chuàng)建數(shù)據(jù)庫(kù)鏈接并創(chuàng)建數(shù)據(jù)集后,開(kāi)發(fā)人員指定主題頁(yè)面每頁(yè)顯示16條帖子,回復(fù)頁(yè)面每頁(yè)顯示8條帖子,通過(guò)傳遞參數(shù)的超級(jí)鏈接實(shí)現(xiàn)分頁(yè)顯示記錄。這樣,通過(guò)一次次的循環(huán),每次只向用戶的瀏覽器返回固定條數(shù)的帖子的主題,直到數(shù)據(jù)庫(kù)的記錄指針未指向記錄的末尾。最后釋放數(shù)據(jù)庫(kù)的連接對(duì)象和記錄設(shè)置對(duì)象。而退出循環(huán)的條件是數(shù)據(jù)庫(kù)的記錄指針未指向記錄的末尾與行計(jì)數(shù)器大于0。關(guān)鍵代碼如下:
<%if page>1 then%>
<%end if%>
<%if page
<%end if%>
顯示頁(yè)面如下:
4.4 加帖子
設(shè)置論壇是為了實(shí)現(xiàn)信息的交流,那么該企業(yè)中的任何員工均有權(quán)在版塊發(fā)表的自己的意見(jiàn)建議、心得體會(huì)之類(lèi)??紤]到信息交流的互動(dòng)性,開(kāi)發(fā)人員必須知道什么人發(fā)表了什么,所以當(dāng)用戶發(fā)表新貼時(shí),必須填寫(xiě)要發(fā)表帖子的標(biāo)題、姓名或所在部門(mén)、要發(fā)表的內(nèi)容。
4.5 回復(fù)帖子
當(dāng)員工瀏覽論壇的時(shí)候,若對(duì)某一主題感興趣或者可以提供發(fā)表者所需要的信息時(shí),用戶就可以對(duì)該主題進(jìn)行回復(fù)。該子模塊的主要功能是在用戶發(fā)表的帖子和被回復(fù)的帖子之間建立聯(lián)系,從而在顯示某個(gè)帖子內(nèi)容的同時(shí)將所有回復(fù)它的帖子的內(nèi)容都顯示出來(lái)。
4.6 論壇管理登錄
鑒于數(shù)據(jù)庫(kù)的后臺(tái)維護(hù)的必要性與安全性,增加了對(duì)論壇數(shù)據(jù)信息的管理。由于數(shù)據(jù)信息的管理只有使用該系統(tǒng)的論壇管理員才能使用,所以設(shè)置了登錄頁(yè)面來(lái)驗(yàn)證管理員的合法性。
首先,先取得用戶輸入的用戶名和密碼,然后通過(guò)數(shù)據(jù)庫(kù)admin.mdb表對(duì)信息進(jìn)行核對(duì),判斷有無(wú)此用戶,若無(wú)則頁(yè)面重定向到erro.asp文件,并在頁(yè)面顯示“你不是管理員”的提示信息;若有則接著判斷密碼是否正確,不正確則顯示上述錯(cuò)誤提示頁(yè)面,只有當(dāng)用戶名與密碼都匹配時(shí)才能正常登錄管理頁(yè)面,轉(zhuǎn)向后臺(tái)操作。
由于只有論壇管理員才能夠?qū)μ舆M(jìn)行編輯、刪除,并修改論壇設(shè)置,因此在程序中利用用戶的Session變量進(jìn)行判斷,防止用戶超越權(quán)限進(jìn)行操作[6]。在模塊中,程序?qū)⒃撚脩舻牟僮鳈?quán)限賦予Session變量a,供后面的程序使用,關(guān)鍵代碼如下:
if pass=rs("pass") and name=rs("name") then
session("a")="1"
4.7 刪除帖子
由于論壇數(shù)據(jù)繁多,考慮到系統(tǒng)的運(yùn)行速度和數(shù)據(jù)的管理,就需要管理員刪除一些無(wú)用或者過(guò)期的數(shù)據(jù),以便騰出空間存放更多的信息。這些無(wú)用的信息包括兩種:一種是用戶發(fā)表的整個(gè)主題(包括被回復(fù)的帖子),另一種是用戶回復(fù)的帖子。所以在管理員成功登錄后,就應(yīng)該有選擇的刪除這些無(wú)用的信息。
刪除帖子是最為簡(jiǎn)單的一部分,用SQL的delete語(yǔ)句即可以實(shí)現(xiàn)。
4.8 搜索帖子
為了方便用戶在眾多帖子中快速查找到自己所發(fā)表的或所關(guān)注的帖子,該模塊實(shí)現(xiàn)按用戶要求搜索相關(guān)帖子。當(dāng)用戶輸入需要查詢主題的關(guān)鍵字時(shí),將返回?cái)?shù)據(jù)庫(kù)主題包含此關(guān)鍵字的相關(guān)帖子的信息。
4.9 修改設(shè)置
當(dāng)管理員身份登錄成功之后可以對(duì)論壇帖子主題顯示的背景顏色、回復(fù)顯示帖子數(shù)和每頁(yè)顯示主題數(shù)等的修改設(shè)置,以實(shí)現(xiàn)頁(yè)面的美化。另外,管理員還可以根據(jù)個(gè)人需求更改私人的用戶名和密碼。
5 結(jié)語(yǔ)
由于能力有限,經(jīng)驗(yàn)不足,系統(tǒng)中還有些不盡如人意之處,如安全性能不夠高。系統(tǒng)在技術(shù)指標(biāo)上已經(jīng)達(dá)到預(yù)期的水平,對(duì)用戶請(qǐng)求的響應(yīng)速度能夠滿足用戶需要;界面簡(jiǎn)潔、友好,菜單式的布局讓用戶更易于掌握。
參考文獻(xiàn)
[1] 蔣偉鋼.基于ASP的動(dòng)態(tài)網(wǎng)站核心技術(shù)分析[J].福建電腦,2005(2):30-32.
[2] 張君,武裝.ASP技術(shù)下的網(wǎng)絡(luò)辦公自動(dòng)化系統(tǒng)[J].電子技術(shù),2004,31(6):24-25.
[3] 許松明.基于ASP技術(shù)動(dòng)態(tài)網(wǎng)站的開(kāi)發(fā)與研究[J].湖南師范學(xué)院學(xué)報(bào)2005,27(1):138-140.
[4] 張景峰.ASP程序設(shè)計(jì)教程[M].北京:北京交通大學(xué)出版社,2005.
[5] 微軟公司,著.Microsoft Office Access2003[M].鐵軍,等,譯.北京:高等教育出版社,2006.
[6] 李嚴(yán),于亞芳,王國(guó)輝,等.ASP數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例解析[M].北京:機(jī)械工業(yè)出版社,2005.