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