文/鄭雨晴
隨著時代的發(fā)展,計算機領域也在源源不斷的取得豐碩的成果。計算機軟件技術(shù)在人們的日常生活、工業(yè)生產(chǎn)控制及企業(yè)辦公自動化領域得到了廣泛的應用?,F(xiàn)代企業(yè)的辦公管理中的無紙化應用已得到廣泛的推廣。企業(yè)采購資金申報是一項重要而且繁復的工作流程,該項工作不僅需要花費很多的時間,人力以及辦公資源,還會因為一些疏忽或者蓄意使公司財產(chǎn)受到損失。開發(fā)一套企業(yè)采購資金申報管理系統(tǒng),就是為了能在最短時間內(nèi)完成最復雜的流程并且可以保證申購資金的透明化,這在很大程度上可以提高企業(yè)的效率以及健壯性。企業(yè)采購費用申報管理系統(tǒng)是標準的B/S項目,前端采用了HTML、DIV+CSS、JAVASCRIPT以及JQuery框架,后臺采用JFinal框架封裝了J2EE,并結(jié)合Apache的Log4J實現(xiàn)日志記錄,展現(xiàn)層運用JSP新規(guī)范的標簽庫,持久層采用C3P0連接池以及ActiveRecord技術(shù),數(shù)據(jù)庫采用MySQL 5.6,而服務器方面采用Jetty作為嵌入式服務器。本系統(tǒng)的特點是:結(jié)構(gòu)清晰,權(quán)限明確,操作簡單,界面簡潔。
解決的主要問題包括:
1.明確申報的步驟,在公司的規(guī)定中明確申報一筆資金將由哪些人進行審核,由哪些人給出明確指示,這是很有必要的。2.必須存在完善的賬號制度,但凡涉及到資金的方面都需要倍加小心,也不是所有的用戶都享有登錄查看的權(quán)利,所以一定要制定完善的賬號制度,非本公司的員工是不可以使用該系統(tǒng)的。3.記錄并統(tǒng)計公司每一次的審批,并賦予公司管理層查看的權(quán)限,這樣他們很容易看到公司申請資金的去向并做出比對。4.研究如何減少系統(tǒng)資源開銷,使數(shù)據(jù)操作速度更快。5.提供良好的UI界面,盡簡單的讓每一個用戶可以看到自己申請的情況(自己審批的情況)。6.為查詢提供多種篩選功能,軟件運用的時間一久,必然會有很多的數(shù)據(jù),這樣可以更清晰的展現(xiàn)資金申請的情況。7.明確的權(quán)限設定,每一種權(quán)限進入系統(tǒng)所可以查看并操作的功能是嚴格按照需求中他們所需要的操作而制定。
通過實際調(diào)查,要求本系統(tǒng)具有以下功能:
1.由于是面向企業(yè)所有用戶的,所以對專業(yè)不能有要求,要提供良好而且簡潔的操作界面,以方便所有用戶使用。
1.如果系統(tǒng)的使用對象較多,則要求有較好的權(quán)限管理。2.方便的數(shù)據(jù)查詢,支持多條件查詢。3.提供良好的日志系統(tǒng),以便查看具體的情況以防止漏洞出現(xiàn),提高本系統(tǒng)的安全性和穩(wěn)定性。4.圖表分析每月申請狀況。5.在相應的權(quán)限下,刪除數(shù)據(jù)方便簡單、數(shù)據(jù)穩(wěn)定性強。6.數(shù)據(jù)計算自動完成,盡量減少人工干預。
可行性研究又叫可行性研究,其目的為了弄清楚所定義的項目是不是可能實現(xiàn)和值得進行??尚行匝芯恐饕獌?nèi)容是要求以全面、系統(tǒng)的分析為主要方法,經(jīng)濟效益為核心,圍繞影響項目的各種因素,運用大量的數(shù)據(jù)資料論證擬建項目是否可行。對整個可行性研究提出綜合分析評價,指出優(yōu)缺點和建議??尚行耘c風險分析是密切相關的,如果項目的風險很大就可能降低生產(chǎn)高質(zhì)量軟件的可能性。
首先,設置用戶使用權(quán)限必須為本公司的用戶,公司每個職工入職的時候,都會由支撐部門的管理員去添加一個賬戶并為其設定權(quán)限,這樣就完成了第一步。進入系統(tǒng)后便可以根據(jù)自己的權(quán)限開始使用自己的功能了,管理員擁有最高的權(quán)限,其可以添加新的用戶,刪除離職的員工賬號,或者對賬號進行修改。并可以對申請進行全面的控制,比如:有用戶的申請有錯誤,在審批開始之前,用戶可以修改。但是一旦審批開始,就不能隨意更改,若需要更改則需要找管理員進行修改并通知審批者注意申請的改變:
系統(tǒng)的流程圖如圖3-1所示而整個申請的流程又是十分規(guī)范且簡單的。先由部門負責人進行第一次審批并給我部門意見,其次負責財務的專員進行整個申請款項的評估和公司資金的情況的說明,最終由總裁給出決定,并通知財務。
圖3 -1系統(tǒng)流程圖
詳細設計是對處理過程進行設計。其核心是將系統(tǒng)的總體設計產(chǎn)生的構(gòu)成軟件系統(tǒng)的各個模塊逐步細化。本章主要采用核心代碼加文字的方式展現(xiàn),并采用一定的設計表示方法對各個程序模塊進行描述,形成詳細的數(shù)據(jù)就結(jié)構(gòu)和軟件的算法表達式,從而為編碼做好準備。
該系統(tǒng)做的是一個Web頁面,所以想要設計一個簡單且優(yōu)雅的主頁面,就要認真的運用大學時學到的HTML以及CSS樣式。設計好了它的主框架后,再做多個分頁面完成其所需要完成的功能頁面即可。設計該頁面時,我選擇Eclipse作為設計工具。雖然它不像DreamWeaver那樣是一款專業(yè)的HTML編輯器,但是對于一些提示或者顯示已經(jīng)夠強大。用于對Web站點、Web頁和Web應用程序進行設計、編碼和開發(fā)。比起其他編輯軟件,它已經(jīng)十分豐富了Web創(chuàng)作體驗。
4.1.1 CSS樣式設計
為了設計頁面的統(tǒng)一性,需要事先設計好文本樣式,在HTML中設計文本的樣式有多種方法。本設計將采用層疊樣式表(CSS)樣式來定義特定的HTML標簽以按照特定方式設置文本格式。在一個工程中,如果可以盡可能的將所有的css文件做成一個整體,這樣不僅可以減少http請求個數(shù),而且方便修改。其中有通用元素的定義,包括單元格的行列常用屬性,文字樣式,Input輸入框樣式,Textarea樣式的定義;鏈接樣式的定義,包括鏈接時、已經(jīng)訪問過后、活動鏈接時、變換鏈接時的各種樣式;對話框樣式,輸入文字樣式等。設計好后,將其保存到系統(tǒng)的項目下,在具體的每個頁面上去引用它。這樣有很多好處,省去在程序中每一處都運用:
“<link id="css"rel="stylesheet">”。
4.1.2 主頁面設計
主窗體界面也是該系統(tǒng)的歡迎界面,歡迎界面不僅要簡單,而且一定要有很好的可視性。讓用戶一眼看去就知道該選擇什么選項。本管理系統(tǒng)采用導航面板綜合了JQUERY技術(shù)增強了主頁的導航效果,并使用了導航標題,從而使得導航面板的界面更加美觀,操作更快捷。在設計時,我采用的是統(tǒng)一頁面頭,統(tǒng)一頁面背景,統(tǒng)一的結(jié)尾,并提取出公共的分頁系統(tǒng)在每個頁面引入即可:
<%@include file="/common/_head.jsp"%>
<%@include file="/common/_foot.jsp"%>
<%@include file="/common/_pagination.jsp"%>
4.1.3 用Jquery增強可視性
Jquery是繼prototype之后又一個優(yōu)秀的Javascript框架。它是輕量級的js庫,它兼容CSS3,還兼容各種瀏覽器。jQuery能夠使用戶的html頁面保持代碼和html內(nèi)容分離,也就是說,不用再在html里面插入一堆js來調(diào)用命令了,只需定義id即可。首先想運用必須先導入庫:<script src="/js/jquery-1.4.4.min.js"type="text/javascript"></script>
之后需要添加樣式,只需要從庫中選定合適的函數(shù),并只需要寫少部分的css和js代碼即可生效。
本系統(tǒng)運用了封裝了J2EE的框架Jfinal,在代碼方面是非常簡單且可視性強的。本系統(tǒng)的核心代碼很少,只需要簡單配置即可:
public class CommonConfig extends JFinalConfig{
private static Logger logger=Logger.getLogger(CommonConfig.class);
@Override
public void configConstant(Constants me){
loadPropertyFile("db_config.txt");
me.setView Type(View Type.JSP);
me.setDevMode(getPropertyToBoolean("devMode",false));
me.setError404View("/error/404.jsp");
me.setError500View("/error/500.jsp");
}
@Override
public void configRoute(Routes me){
me.add(new CommonRoute());
me.add(new RootRoute());
}
@Override
public void configPlugin(Plugins me){
//配置C3p0數(shù)據(jù)庫連接池插件
C3p0Plugin c3p0Plugin=new C3p0Plugin(getProperty("jdbc Url"),
getProperty("user"),getProperty("password").trim());
me.add(c3p0Plugin);
//配置ActiveRecord插件
ActiveRecordPlugin arp=new ActiveRecordPlugin(c3p0Plugin);
me.add(arp);
arp.addMapping("application",Application.class);
arp.addMapping("user",User.class);
arp.addMapping("news",News.class);
}
后臺的驗證只需要通過集成Validator類并復寫方法即可完成,并通過annotation的方式作用到表格上,不僅可以對用戶的輸入進行驗證,而且可以滿足如果驗證失敗,用戶所輸入的內(nèi)容保留:
引用出處
[1]鄭阿奇.Java EE項目開發(fā)教程-(第2版).北京:電子工業(yè)出版社,2013
[2][美]麥克勞克林.Oracle Database 11g&MySQL 5.6開發(fā)手冊 北京:清華大學出版社,2013
[3][美]Bruce Eckel.Thinking In Java.英文第 4版.北京:機械工業(yè)出版社,2007
[4][美]Herbert Schidt著.Java參考大全.鄢愛蘭.鹿江春譯.北京:清華大學出版社,2006
[5]Rollingsand Adams.JAVA設計技術(shù)[M].北京:希望電子出版社,2003.
[6]Date Moris.JAVA架構(gòu)與設計[M].北京:希望電子出版社,2005.