趙正德 婁 劍 侯曉宇
摘要:本文結(jié)合Crystal Report技術(shù)、NETBPM技術(shù)、Socket技術(shù),根據(jù)實(shí)際辦公需要,解決了辦公軟件設(shè)計(jì)與實(shí)現(xiàn)的若干問題,包括處理復(fù)雜報(bào)表、流程控制、信息即時(shí)交互等問題。既減輕了軟件開發(fā)人員的工作壓力,又為CA辦公系統(tǒng)的實(shí)現(xiàn)提供了適宜的解決方案。
關(guān)鍵詞:ASP.NET;水晶報(bào)表Crystal Repot;NetBPM即時(shí)通信
1引言
辦公信息化、高效化浪潮席卷之際,打造出一套適合辦公人員使用的CA系統(tǒng)勢(shì)在必行。由此,我們以東北大學(xué)軟件學(xué)院辦公需求為背景,構(gòu)建了適合辦公人員使用的CA系統(tǒng)。簡(jiǎn)潔易用的交互界面使系統(tǒng)更加人性化,容錯(cuò)機(jī)制的引入使系統(tǒng)備受青睞,水晶報(bào)表的使用使數(shù)據(jù)展現(xiàn)得更加唯美,NETBPM技術(shù)使得流程更便于控制管理,信息即時(shí)通訊使得信息交互更為方便。鑒于所研究的技術(shù)可以最大化實(shí)現(xiàn)其價(jià)值,并通過以上技術(shù)本文提出關(guān)于CA系統(tǒng)中關(guān)鍵問題的一些解決方案。
2水晶報(bào)表
辦公系統(tǒng)中不可或缺的一部分就是報(bào)表,好的報(bào)表能直觀地讓人把握數(shù)據(jù)的情況,方便決策。面對(duì)網(wǎng)絡(luò)中大量的報(bào)表工具,正確選擇適合所開發(fā)的應(yīng)用程序的報(bào)表工具尤為重要。
對(duì)于所開發(fā)的CA系統(tǒng),我們選擇了采用Crystal只eport,其為業(yè)內(nèi)最專業(yè)、功能最強(qiáng)的報(bào)表系統(tǒng),實(shí)現(xiàn)了與絕大多數(shù)流行開發(fā)工具的集成和接口。
構(gòu)建報(bào)表時(shí),首先使用XSD文件引入數(shù)據(jù)庫字段,在.rpt文件中可視化地?cái)[放各字段位置。在應(yīng)用程序中則使用Load函數(shù)加載水晶報(bào)表并設(shè)置其數(shù)據(jù)源即可在頁面中顯示水晶報(bào)表。水晶報(bào)表可以以柱形圖、餅形團(tuán)、折線圖、自定義表格等方式顯示數(shù)據(jù),也可引用已存在的電子表格、圖片等,使得報(bào)表開發(fā)簡(jiǎn)潔高效。
水晶報(bào)表的實(shí)現(xiàn)原理并不復(fù)雜,但是實(shí)現(xiàn)過程中會(huì)出現(xiàn)若干問題。經(jīng)過長時(shí)間的研究與探討,總結(jié)了若干相對(duì)容易的解決方式。在此只對(duì)兩種常見錯(cuò)誤簡(jiǎn)單介紹。當(dāng)引用數(shù)據(jù)庫中多個(gè)表的字段時(shí)水晶報(bào)表會(huì)無法處理,此時(shí)可以在數(shù)據(jù)庫中構(gòu)建單一視圖再在水晶報(bào)表中引用視圖即可。另外,在水晶報(bào)表里會(huì)出現(xiàn)圖片無法顯示的錯(cuò)誤,此時(shí)應(yīng)更改圖片的路徑。
3使用NETBPM進(jìn)行流程控制
在本OA系統(tǒng)中,采用了NETBPM實(shí)現(xiàn)工作流。通過NetBPM,可以對(duì)不能實(shí)時(shí)獲得的、由其他系統(tǒng)或人員產(chǎn)生的結(jié)果與程序邏輯進(jìn)行結(jié)合,使業(yè)務(wù)流程管理變得簡(jiǎn)單。
BPM,即業(yè)務(wù)流程管理,而NetBPM是BPM領(lǐng)域中一個(gè)優(yōu)秀的企業(yè)應(yīng)用系統(tǒng)。NetBPM由多個(gè)組件構(gòu)成,每個(gè)組件都有明確定義的接口。這些接口包括過程開發(fā)者接口、用戶接口、外部IT系統(tǒng)和NetBPM引擎接口、NetBPM和機(jī)構(gòu)數(shù)據(jù)倉庫接口。NetBPM的核心是其BMP引擎,它是整個(gè)NetBPM業(yè)務(wù)過程邏輯制定和實(shí)施的核心所在。
本CA系統(tǒng)系A(chǔ)SPNE7應(yīng)用程序,引用了NETBPM中的DLL,嚴(yán)格按照NPDL的語法規(guī)定建立適合我們工作流程的process-definition.xml與webinterface.xml文件來定義流程節(jié)點(diǎn)相關(guān)信息,并利用NETBPM_DLL提供的函數(shù)接口實(shí)現(xiàn)本CA系統(tǒng)的功能。在processdefinition.xml文件中既要定義pro-cess-definition節(jié)點(diǎn),又要為結(jié)點(diǎn)定義ac-tion,有效的事件類型包括process-in-stance-start、process-instance-end和process-instance-cancel。
在CONCURRENT BLOCK(并發(fā)塊)中含有比較重要的Fork節(jié)點(diǎn)與Join節(jié)點(diǎn),分別定義了在流程分支點(diǎn)與匯合點(diǎn)觸發(fā)的事件等。而webinterface.xml文件則更多地定義了WEB表單的表現(xiàn)形式。
4高校信息通
在本CA系統(tǒng)中集成了“高校信息通”功能,為辦公系統(tǒng)的使用人員的交流、溝通及發(fā)布公告等提供了平臺(tái)。本高校信息通采用c/s架構(gòu),在客戶端和服務(wù)器、客戶端與客戶端之間建立穩(wěn)定的socket連接,并以xml文件形式傳遞數(shù)據(jù),自由定義節(jié)點(diǎn),結(jié)構(gòu)分明。
在服務(wù)器端,對(duì)與客戶端交互的信息進(jìn)行了控制與處理分離,所有的請(qǐng)求由控制類負(fù)責(zé)判斷,并交與權(quán)限類進(jìn)行安全判斷和規(guī)范檢查,再轉(zhuǎn)交給實(shí)體類處理,處理結(jié)果由控制類反饋。以xml格式文件實(shí)時(shí)記錄用戶交互數(shù)據(jù),利于管理員查看相關(guān)信息。另外,采用線程池技術(shù)提高了服務(wù)器的效率,并對(duì)可能的連接進(jìn)行了控制。對(duì)離線消息的保存則避免了用戶之間傳遞的消息丟失。此外,定時(shí)掃描各個(gè)客戶端可防止異常掉線引起的顯示錯(cuò)誤。
在客戶端,前臺(tái)數(shù)據(jù)格式檢查與后臺(tái)檢查相結(jié)合,保證了程序的健壯性。采用消息隊(duì)列的方式存儲(chǔ)聊天信息,并在窗體之間及時(shí)傳遞??蛻舳酥鲃?dòng)通知在線好友上線、下線則減輕服務(wù)器負(fù)擔(dān)。另外,雙擊窗口前置、消息達(dá)到時(shí)圖標(biāo)閃動(dòng)提示、記住密碼默認(rèn)登錄等方式均使系統(tǒng)更具有人性化特質(zhì)。