版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
摘要通過計算機實現(xiàn)文件管理查詢、為用戶提供充足的信息和快捷的查詢手段能改善中小企業(yè)手工管理所帶來的缺點。本信息管理查詢系統(tǒng)是針對企業(yè)電子文件的存儲、查詢、歸類,為企業(yè)提供管理人員服務(wù)端完全操控,員工客戶端操作簡單、直觀的信息查詢軟件。本文是關(guān)于利用SQLite、VisualStudio2010軟件,采用多層架構(gòu)研究與設(shè)計的基于C/S模式的中小企業(yè)信息查詢系統(tǒng),實現(xiàn)了多種文件格式轉(zhuǎn)換、電子文件按企業(yè)自己要求的分類管理和查閱等基本功能。介紹文件查詢系統(tǒng)的課題研究意義,概要設(shè)計、業(yè)務(wù)邏輯層設(shè)計,詳細分析了用戶體驗設(shè)計和實現(xiàn)。關(guān)鍵字:WPF信息查詢系統(tǒng)、C/S模式、業(yè)務(wù)邏輯層、用戶體驗AbstractImplementationoffilemanagement,toprovidethesufficientinformationandthequickinquirymethodcanimprovethemanualmanagementofsmallandmediumenterprisesasaresultofuser'sdisadvantagebycomputer.Theinformationmanagementsystemistheenterpriseelectronicdocumentstorage,query,classification,providethemanagementservercompletelycontrolfortheenterprise,employeeinformationquerysoftwareclienthastheadvantagesofsimpleoperation,intuitive.ThisarticleisabouttheuseofSQLite,VisualStudio2010software,theinformationsystemofC/Smodeofsmallandmediumenterprisesbasedontheresearchanddesignofmultitierarchitecture,toachieveavarietyoffileformatconversion,electronicfilesaccordingtotheclassifiedmanagementofenterprisestherequirementsoftheirownandaccesstosuchbasicfunctions.Thefilequerysystemresearch,design,businesslogiclayerdesign,detailedanalysisofuserexperiencedesignandimplementation.Keywords:WPFinformationquerysystem,C/Sstructure,businesslogiclayer,userexperience目錄313411引言 167681.1課題研究背景及意義 1206901.2開發(fā)環(huán)境 1234511.3技術(shù)簡介 276492系統(tǒng)概要設(shè)計和框架設(shè)計 4107232.1需求介紹 4238912.2設(shè)計原則 532792.3系統(tǒng)功能介紹 6287722.4系統(tǒng)框架介紹 7166983詳細設(shè)計 999603.1軟件流程說明 9195873.2類的設(shè)計說明 10312814系統(tǒng)實現(xiàn) 12282524.1用戶體驗設(shè)計原則 12205254.2詳細設(shè)計及實現(xiàn) 1235724.2.1主窗體設(shè)計及實現(xiàn) 1241894.2.2查詢窗體設(shè)計及實現(xiàn) 12260024.2.3文件展示窗體設(shè)計及實現(xiàn) 13249824.2.4數(shù)據(jù)交互設(shè)計及實現(xiàn) 1520054.2.5文件格式轉(zhuǎn)換設(shè)計及實現(xiàn) 16242295結(jié)束語 23297556參考文獻 241引言1.1課題研究背景及意義科技的進步促進企業(yè)的發(fā)展,電子文件取代紙質(zhì)文件,“無紙化”辦公已成為現(xiàn)代企業(yè)的發(fā)展趨勢。在企業(yè)信息系統(tǒng)中,文件管理系統(tǒng)涉及的部門、人員、應(yīng)用系統(tǒng)眾多,文件管理系統(tǒng)在企業(yè)信息系統(tǒng)中的角色不再僅是其他應(yīng)用系統(tǒng)的支援者,而應(yīng)作為整個企業(yè)信息系統(tǒng)的支撐平臺之一。隨著企業(yè)的發(fā)展,電子文件越來越多,人員的流動造成原來的電子版文件非常容易丟失。當(dāng)文件更改時,如果找不到原來的電子版文件,就得重新編輯文件,會浪費許多工作時間,而且容易出錯。所以,如何管理好這些文件的電子版,既能不丟失、又不能不失密,還可以讓該看到文件的人員都能查閱到相關(guān)的文件,對于未及時完成更改的文件進行提示,這就是研究的任務(wù)所在。目前市場上有眾多的電子文件管理系統(tǒng)軟件,雖然功能齊全,方便易用,但是由于其針對的是整個市場,所以當(dāng)其用于某個具體的企業(yè)文件管理時,或多或少的就會存在不同的問題,有的甚至嚴重阻礙企業(yè)的正常運作。不同企業(yè)的文件管理有其不同的特點與要求,因此,只有根據(jù)企業(yè)自身的需求設(shè)計最合適的管理系統(tǒng),才能使文件管理系統(tǒng)真正的為生產(chǎn)服務(wù)。本查詢系統(tǒng)根據(jù)某公司文件管理的功能和特點及要求,完成了文件管理所涉及的業(yè)務(wù)流程和功能實現(xiàn),并進行了系統(tǒng)測試。1.2開發(fā)環(huán)境本系統(tǒng)選擇VisualStudio2010作為軟件的開發(fā)環(huán)境。VisualStudio2010是微軟公司推出的開發(fā)環(huán)境,是目前最流行的Windows平臺應(yīng)用程序開發(fā)環(huán)境,是一套完整的開發(fā)工具集,用于生成桌面應(yīng)用程序、ASP.NETWeb應(yīng)用程序、移動應(yīng)用程序等多種應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和Office插件,是VisualC#、VisualBasic、VisualC++和VisualJ#等多種語言共同使用的集成開發(fā)環(huán)境(IDE)。VisualStudio2010的集成開發(fā)環(huán)境(IDE)的界面被重新設(shè)計和組織,變得更加簡單明了,利用此集成開發(fā)環(huán)境可以共享工具且有助于創(chuàng)建混合語言解決方案。利用它的可視化設(shè)計器,可以快速地創(chuàng)建WPF應(yīng)用程序。WPF(WindowsPresentationFoundation)是微軟推出的基于WindowsVista的用戶界面框架,屬于NETFramework3.0的一部分。它提供了統(tǒng)一的編程模型、語言和框架,真正做到了分離界面設(shè)計人員與開發(fā)人員的工作,同時它提供了全新的多媒體交互用戶圖形界面。系統(tǒng)選用了SQLite數(shù)據(jù)庫用來存儲數(shù)據(jù)信息。SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。系統(tǒng)關(guān)于文檔文件轉(zhuǎn)格式使用MicrosoftOffice組件Word、Excel、Powerpoint。MicrosoftOffice是微軟公司開發(fā)的一套基于Windows操作系統(tǒng)的辦公軟件套裝。它為\o"MicrosoftWindows"MicrosoftWindows、\o"WindowsPhone"WindowsPhone、\o"AppleMacintosh"AppleMacintosh、\o"IOS"iOS和\o"Android"Android\o"操作系統(tǒng)"操作系統(tǒng)而開發(fā)。與辦公室應(yīng)用程序一樣,它包括聯(lián)合的\o"服務(wù)器"服務(wù)器和基于\o"互聯(lián)網(wǎng)"互聯(lián)網(wǎng)的服務(wù)。2007MicrosoftOffice加載項:將Microsoft文檔存儲成PDF或XPS:運用該加載項在八種2007MicrosoftOffice程序中導(dǎo)出文檔,并存為\o"PDF"PDF和\o"XPS"XPS格式,而無須借助第三方軟件。本次開發(fā)使用MicrosoftOffice2010版。有時候也會轉(zhuǎn)swf格式,需要使用pdf2swf軟件。系統(tǒng)關(guān)于圖片的轉(zhuǎn)換使用.Net的程序集。系統(tǒng)關(guān)于視頻的轉(zhuǎn)換采用當(dāng)前開發(fā)人員常用的ffmpeg和HandBrakeCLI。FFmpeg是一個開源免費跨平臺的視頻和音頻流方案,屬于自由軟件,采用LGPL或GPL許可證(依據(jù)你選擇的組件)。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多codec都是從頭開發(fā)的。FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機程序。多媒體視頻處理工具FFmpeg有非常強大的功能[2]包括視頻采集功能、視頻格式轉(zhuǎn)換、視頻抓圖、給視頻加水印等。HandBrake無需特別技巧便可直接將DVD電影內(nèi)轉(zhuǎn)換成AVI/MPEG4格式,還有MP4及OGM輸出、AAC及Vorbis編碼.HandBrake能轉(zhuǎn)換被加密的(encrypted)DVD,轉(zhuǎn)換時以多任務(wù)方式工作,同時讓你選擇語言,聲音及畫面質(zhì)量,轉(zhuǎn)換后的畫面大小等.具備x264的多線程H.264編碼和H.264Baseline選項。HandBrakeCLI是HandBrake的一個命令行工具。1.3技術(shù)簡介當(dāng)前在涉及到文件管理系統(tǒng)開發(fā)領(lǐng)域中存在著不同的編程語言和實現(xiàn)技術(shù)方案,如C++、Javaweb、ASP.Net等。而我們采用了C#語言開發(fā)了WPF應(yīng)用程序。C#是微軟公司為了其.NET計劃而開發(fā)的一種新的編程語言,它是針對.NET平臺而設(shè)計的,是微軟.NET計劃中的主要開發(fā)語言。C#完全是面向?qū)ο蟮木幊陶Z言,所有的元素都要被封裝到類中,它不再支持類的多繼承,但可通過接口實現(xiàn)多繼承也不再支持全局函數(shù),全局變量和全局常量,所有的函數(shù)、變量、常量都必須封裝在類中,作為類的實例成員或靜態(tài)成員。C#派生于C/C++,吸取了C、C++、Java以及Delphi和VisualBasic等語言的優(yōu)點,并解決了它們的問題,具有簡單、強大、靈活、類型安全和面向?qū)ο蟮葍?yōu)點,縮短了開發(fā)周期,降低了開發(fā)難度。而且C#定義了一些更適合現(xiàn)代應(yīng)用的數(shù)據(jù)類型,如適合金融業(yè)進行貨幣計算的decimal類型。同時它也允許開發(fā)人員根據(jù)需要自己定義與現(xiàn)有類型同等高效的新的數(shù)據(jù)類型。在內(nèi)容管理上,引入了垃圾收集(GarbageCollection,GC)機制,減輕了開發(fā)人員對內(nèi)存管理的負擔(dān)。此外C#實現(xiàn)了更加有效、穩(wěn)定、跨語言的異常處理機制,包括throw,try…catch和try…finally。WPF是微軟新一代圖形系統(tǒng),運行在.NETFramework3.0及以上版本下,為用戶界面、2D/3D圖形、文檔和媒體提供了統(tǒng)一的描述和操作方法?;贒irectX9/10技術(shù)的WPF不僅帶來了前所未有的3D界面,而且其圖形向量渲染引擎也大大改進了傳統(tǒng)的2D界面,比如Vista中的半透明效果的窗體等都得益于WPF。WPF相對于Windows客戶端的開發(fā)來說,向前跨出了巨大的一步,它提供了超豐富的.NETUI框架,集成了矢量圖形,豐富的流動文字支持(flowtextsupport),3D視覺效果和強大無比的控件模型框架。WPF最重要的特色,矢量圖的超強支持。兼容支持2D繪圖,比如矩形、自定義路徑,位圖等。文字顯示的增強,XPS和消鋸齒。三維強大的支持。包括3D控件及事件,與2D及視頻合并打造更立體效果。漸變、使用高精確的(ARGP)顏色,支持浮點類型的像素坐標。在架構(gòu)設(shè)計上采用三層架構(gòu),整個架構(gòu)分為界面層、業(yè)務(wù)邏輯層、若干中間數(shù)據(jù)處理層和數(shù)據(jù)連接層,這樣使得每個模塊功能單一,降低了模塊的規(guī)模,增強了系統(tǒng)的功能內(nèi)聚。使得開發(fā)過程中分工明確,職責(zé)劃分清晰,可移植性和可擴展性好,而且簡單可靠。
2系統(tǒng)概要設(shè)計和框架設(shè)計2.1需求介紹本系統(tǒng)針對中小企業(yè)電子文件的存儲和查詢統(tǒng)計等方面的實際需要,分析了企業(yè)文件管理系統(tǒng)的功能,主要完成文件的展示模板管理、文件查詢管理、文檔文件展示、圖片文件展示、視頻文件展示、文件格式轉(zhuǎn)換功能。并且能夠讓企業(yè)管理人員服務(wù)端完全操控查詢系統(tǒng)的查詢內(nèi)容、部分界面。具體需求介紹如下:1、展示模板管理:展示程序的首頁,根據(jù)主模塊個數(shù)系統(tǒng)采用相應(yīng)的模板,不同模板采用不同背景圖片、按鈕圖片及位置。其中模板的背景圖片、按鈕圖片及位置由服務(wù)器端指定,顯示的按鈕個數(shù)也是由服務(wù)端推送的配置文件決定。例如圖2-1,2-2所示:圖2-1三按鈕主界面圖2-2四按鈕主界面2、文件查詢管理對當(dāng)前文件系統(tǒng)的所有文件進行查詢,主要針對組織結(jié)構(gòu)(查詢的機構(gòu)模塊)和文件類型(文件所屬種類)進行查找需要查詢的文件。其中查詢使用的組織機構(gòu)和文件類型以服務(wù)端推送的配置文件為準。3、文檔文件展示對文檔文件進行展示。具體分xps展示和swf展示,xps展示位上下滑動的瀏覽式展示,swf位點擊控制上下翻頁,點擊展示區(qū)域上方,向上翻頁,點擊展示區(qū)域下方,鄉(xiāng)下翻頁。4、圖片文件管理對圖片文件進行展示??稍谟|屏一體機上自由的拖動、旋轉(zhuǎn)、縮放圖片。5、視頻文件展示對視頻文件進行展示。具體分為帶進度條的播放,可控制的快鍵和暫停等功能。不帶進度條的播放,用戶不可控制,只能循環(huán)觀看。6、文件格式轉(zhuǎn)換根據(jù)前端部署的配置文件,對文件進行格式轉(zhuǎn)換,讓展示模塊有更好的兼容性。2.2設(shè)計原則1、系統(tǒng)可擴展性應(yīng)用軟件的模塊化程度較高,對不同業(yè)務(wù)流程和管理方式的適應(yīng)能力要強,軟件維護方便。貫徹面向最終用戶的原則,建立友好的用戶界面,使操作簡單、直觀、靈活,易于學(xué)習(xí)掌握。2、安全性系統(tǒng)必須在成本可以接受的條件下,從系統(tǒng)結(jié)構(gòu)、設(shè)計方案、設(shè)備選型、廠商的技術(shù)服務(wù)與維護響應(yīng)能力,備件供應(yīng)能力等方面考慮,使得系統(tǒng)故障發(fā)生的可能性盡可能少,影響盡可能小,對各種可能出現(xiàn)的緊急情況有應(yīng)急的工作方案和對策。3、實用性在實用可靠的前提下,盡可能跟蹤國內(nèi)外先進的計算機軟硬件技術(shù)、信息技術(shù)及網(wǎng)絡(luò)通信技術(shù),使系統(tǒng)具有較高的性能價格比,技術(shù)上立足于長遠發(fā)展,堅持選用開放性系統(tǒng),使系統(tǒng)和將來的新技術(shù)能平滑過渡。采用先進的體系結(jié)構(gòu)和技術(shù)發(fā)展的主流產(chǎn)品,保證整個系統(tǒng)高效運行。4、具有最佳的性能價格比本系統(tǒng)在設(shè)計上尋求最佳的性能價格比。5、具有高可靠性本系統(tǒng)所采用的產(chǎn)品及技術(shù)采用可靠性設(shè)計,力求系統(tǒng)安全,可靠,穩(wěn)定的運行。2.3系統(tǒng)功能介紹針對中小企業(yè)文件管理的查詢系統(tǒng)具體需求,結(jié)合文件管理的實際情況,分析出系統(tǒng)主要功能模塊及其結(jié)構(gòu)關(guān)系如圖2-3所示:WPF查詢WPF查詢系統(tǒng)文件查詢管理模板管理文件展示模板選擇模板展示文件列表展示文檔文件展示圖片文件展示視頻文件展示組織結(jié)構(gòu)查詢文件類型查詢文件格式轉(zhuǎn)換文檔文件轉(zhuǎn)換圖片文件轉(zhuǎn)換視頻文件轉(zhuǎn)換Net服務(wù)和服務(wù)端同步系統(tǒng)參數(shù)和數(shù)據(jù)圖2-3功能模塊及關(guān)系圖下面詳細分析每個子模塊的功能:A)模板選擇模板按照按鈕個數(shù)劃分,選擇時根據(jù)服務(wù)器推送的配置文件中一級節(jié)點的個數(shù)決定選擇選擇哪個模板。B)模板展示根據(jù)A中選擇好的模板,按照制度路徑獲取背景和按鈕的圖片,在根據(jù)模板的按鈕位置的規(guī)定,將背景和按鈕顯示出來。C)組織結(jié)構(gòu)查詢組織結(jié)構(gòu)可粉多層次,頁面上部橫條為組織結(jié)構(gòu)的選擇區(qū)域,多層次的組織結(jié)構(gòu)在相應(yīng)的組織結(jié)構(gòu)上的下拉菜單中展示。D)文件類型查詢C中選擇好組織結(jié)構(gòu)后,頁面左側(cè)展示這個組織結(jié)構(gòu)的所有文件類型,可選擇類型,類型不分層次。E)文件列表展示C、D兩步驟選擇好組織結(jié)構(gòu)和文件類型,更加組織結(jié)構(gòu)和文件類型的唯一編碼在資源表中查詢符合要求的文件,將這些文件的名稱以列表的形式展示在頁面中心部分,分看查閱的文件和問轉(zhuǎn)化成果不能查看的資源。F)文檔文件展示對文檔文件進行展示。具體分xps展示和swf展示,xps展示位上下滑動的瀏覽式展示,swf位點擊控制上下翻頁,點擊展示區(qū)域上方,向上翻頁,點擊展示區(qū)域下方,鄉(xiāng)下翻頁。G)圖片文件管理對圖片文件進行展示??稍谟|屏一體機上自由的拖動、旋轉(zhuǎn)、縮放圖片。H)視頻文件展示對視頻文件進行展示。具體分為帶進度條的播放,可控制的快鍵和暫停等功能。不帶進度條的播放,用戶不可控制,只能循環(huán)觀看。I)文件格式轉(zhuǎn)換根據(jù)前端部署的配置文件,對文件進行格式轉(zhuǎn)換,讓展示模塊有更好的兼容性。2.4系統(tǒng)框架介紹1、總體框架員工綜合信息查詢系統(tǒng)的技術(shù)架構(gòu)根據(jù)業(yè)務(wù)功能劃分采用下列兩種技術(shù)架構(gòu):A)信息綜合管理平臺是采用標準的J2EE框架的B/S應(yīng)用。采用業(yè)界前沿的經(jīng)過普遍驗證的struts2.5、spring1.2、hibernate3.0技術(shù)組合,安全控制組件采用acegi,由于其和spring良好的集成性、可擴展性、不同驗證機制的兼容性而得到業(yè)界的廣泛認可。整體架構(gòu)按照層次分為四個大組件:WEB組件、SERVICE組件、DAO組件和SPRING容器。Service層為web層提供調(diào)用接口,同時依賴與DAO組件,通過DAO層來實現(xiàn)數(shù)據(jù)持久化操作。Spring管理各個層面的組件實例,通過AOP、IOC機制實現(xiàn)對組件創(chuàng)建、組裝、攔截、注入的統(tǒng)一管理,它是貫穿于各個層面的容器;同時Spring為Service層提供事務(wù)管理支持,封裝并簡化了對Hibernate的操作。業(yè)務(wù)接口層及其實現(xiàn)是我們關(guān)注的重點,它是系統(tǒng)核心業(yè)務(wù)邏輯的封裝層。B)一體機查詢采用基于.net技術(shù)架構(gòu)的C/S應(yīng)用??紤]到一體機觸控操作簡便性和人機交互友好性,一體機查詢應(yīng)用采用客戶端方式部署,數(shù)據(jù)訪問根據(jù)不同查詢應(yīng)用場合采用基于本地存儲方式或調(diào)用后臺接口方式。2、本查詢系統(tǒng)框架在本系統(tǒng)中,我們設(shè)計并使用了傳統(tǒng)的三層架構(gòu)。三層架構(gòu)就是把整個系統(tǒng)分為界面層、業(yè)務(wù)邏輯層、若干中間數(shù)據(jù)處理層和數(shù)據(jù)鏈接層。中間的邏輯層,每一層僅實現(xiàn)一個功能。這樣就進一步增強了系統(tǒng)的內(nèi)聚性,使得每個模塊的功能單一,降低了模塊的規(guī)模,雖然增加了處理結(jié)構(gòu)的深度,但其規(guī)模在可控范圍之內(nèi)。在系統(tǒng)開發(fā)過程中,團隊分工可以更加明確,每個人僅需要完成若干功能中的一個或幾個。3、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層和表現(xiàn)層3層的說明:A)業(yè)務(wù)邏輯層(BusinessLogicLayer,簡稱BLL層)作用業(yè)務(wù)邏輯層(BLL)主要是用來處理領(lǐng)域模型對象之間的邏輯關(guān)系,是一個系統(tǒng)中最核心的部分,是實現(xiàn)系統(tǒng)業(yè)務(wù)功能的核心邏輯層。業(yè)務(wù)邏輯層在體系架構(gòu)中的位置很關(guān)鍵,它處于數(shù)據(jù)訪問層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。由于層是一種弱耦合結(jié)構(gòu),層與層之間的依賴是向下的,底層對于上層而言是“無知”的,改變上層的設(shè)計對于其調(diào)用的底層而言沒有任何影響。如果在分層設(shè)計時,遵循了面向接口設(shè)計的思想,那么這種向下的依賴也應(yīng)該是一種弱依賴關(guān)系。因而在不改變接口定義的前提下,理想的分層式架構(gòu),應(yīng)該是一個支持可抽取、可替換的“抽屜”式架構(gòu)。正因為如此,業(yè)務(wù)邏輯層的設(shè)計對于一個支持可擴展的架構(gòu)尤為關(guān)鍵,因為它扮演了兩個不同的角色。對于數(shù)據(jù)訪問層而言,它是調(diào)用者;對于表示層而言,它卻是被調(diào)用者。依賴與被依賴的關(guān)系都糾結(jié)在業(yè)務(wù)邏輯層上,如何實現(xiàn)依賴關(guān)系的解耦,則是除了實現(xiàn)業(yè)務(wù)邏輯之外留給設(shè)計師的任務(wù)。在我們的系統(tǒng)中,BLL層主要的功能就是邏輯判斷和傳遞。數(shù)據(jù)訪問層是最底層的,也是和數(shù)據(jù)庫直接發(fā)生關(guān)系的這樣可以使各層的分工更加清晰、明確。B)數(shù)據(jù)訪問層(Dataaccesslayer.簡稱DAL層)作用DAL是最底層的,也是和數(shù)據(jù)庫直接發(fā)生關(guān)系的。理論上,只有在該層中才允許出新sql語句,數(shù)據(jù)庫連接字符串等等。所以只要涉及到查詢數(shù)據(jù)庫,操作數(shù)據(jù)的方法都應(yīng)該寫在該層中,但是,該成僅僅是負責(zé)查詢,并不做任何邏輯上的判斷,比如說操作成功返回true等等。具體的行為通過訪問數(shù)據(jù)鏈路層接口來實現(xiàn)對數(shù)據(jù)信息的增、刪、改、查等操作。C)表現(xiàn)層(user
interface.簡稱UI層)作用位于最外層(最上層),最接近用戶。用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。主要對用戶的請求接受,以及數(shù)據(jù)的返回,為客戶端提供應(yīng)用程序的訪問。
3詳細設(shè)計3.1軟件流程說明系統(tǒng)服務(wù)端為B/S架構(gòu),文件管理人員可以通過網(wǎng)站登錄:1.創(chuàng)建各種文件類型名稱,再將相應(yīng)的資源上傳到相應(yīng)的資源組里面。2.創(chuàng)建各種針對本公司的公司部門及子部門,將已上傳的資源分配給相應(yīng)的部門。3.創(chuàng)建客戶端,為客戶端分配可查詢的內(nèi)容及部門及資料信息。系統(tǒng):1.將文件管理人員錄入的信息分別存入相應(yīng)的數(shù)據(jù)庫。2.按客戶端部署的部門及資源信息生成XML文件(詳情見下文XML文件說明),將XML文件以任務(wù)的方式下發(fā)給客戶端。3.將客戶端需要的資料文件名稱以任務(wù)的方式下發(fā)給客戶端??蛻舳思碬PF查詢系統(tǒng)是C/S架構(gòu),先通過數(shù)據(jù)交互(詳見4.2.4數(shù)據(jù)交互設(shè)計)獲取本終端的任務(wù)到數(shù)據(jù)庫的任務(wù)表中,然后處理這些任務(wù)獲取XML文件、資源文件,同步數(shù)據(jù)庫表配置信息表、模板信息表、資源信息表的數(shù)據(jù)。同步終端展示所需要的數(shù)據(jù)和文件后,可以和用戶進行交互(詳情見4.2用戶體驗實現(xiàn)的詳細設(shè)計)。流程圖如下圖3-1:文件管理人員登錄文件管理人員登錄客戶端信息建立組織結(jié)構(gòu)信息建立資料信息建立服務(wù)端數(shù)據(jù)處理客戶端服務(wù)端數(shù)據(jù)交互客戶端數(shù)據(jù)處理模板管理資源查詢資源展示圖3-1程序流程圖XML文件說明:XML內(nèi)容如下:<rootname="resource"lastUpdateTime="2014-05-0812:02:02"> <menuname="管理制度"code="AA01"type="1"><menuname="廠1"code="AA01"type="2"> <menuname="車間1"code="AA0101"type="2"> <menuname="管理類型1"code="AA0101"type="1"/> <menuname="管理類型2"code="AA0102"type="1"/></menu> <menuname="車間2"code="AA0102"type="2"> <menuname="管理類型1"code="AA0101"type="1"/></menu></menu> <menuname="廠2"code="AA02"type="2"> <menuname="管理類型1"code="AA0101"type="1"/> <menuname="管理類型2"code="AA0102"type="1"/></menu> </menu><menuname="公告"code="AA02"type="1"></menu><menuname="技術(shù)資料"code="AA03"type="1"></menu></root>采用樹形結(jié)構(gòu),第一級menu為主界面的功能劃分,第二級及子級為查詢界面的詳細數(shù)據(jù)包括組織結(jié)構(gòu)和資源類型。Menu節(jié)點包括名稱name、編碼code和類型type,其中code在數(shù)據(jù)庫的資源表中有相應(yīng)的資源對應(yīng),type為1表示該節(jié)點為資源類型,為2表示組織結(jié)構(gòu),通過type值節(jié)點在查詢界面的顯示情況(詳情見4.2.2查詢窗體設(shè)計),資源的篩選通過組織結(jié)構(gòu)編碼code和資源類型編碼code在數(shù)據(jù)庫中查找符合要求的資源進行展示。3.2類的設(shè)計說明本系統(tǒng)的BLL層是由14個類(詳見表3-1)組成,DAL層由5個類(詳見表3-2)組成完成刪除、更新或查詢數(shù)據(jù)的功能。通過UI層的用戶交換調(diào)用BLL層實現(xiàn)字段級和業(yè)務(wù)邏輯。
表3-1BLL層的類類名類作用說明ComClass系統(tǒng)運行參數(shù)ConfigBeo配置表數(shù)據(jù)模型MediaBeo資源表數(shù)據(jù)模型TermTaskBeo任務(wù)表數(shù)據(jù)模型TreeNode組織結(jié)構(gòu)和文件類型的樹形節(jié)點數(shù)據(jù)模型TemplateBeo模板表數(shù)據(jù)模型CMySqlite封裝SQLite數(shù)據(jù)庫訪問的接口和方法FileHelper封裝物理文件操作的方法FTPHelper.cs封裝FTP下載的方法Helper封裝基層對象數(shù)據(jù)序列化的方法Null自定義空值的數(shù)據(jù)模型ReadXml封裝讀取XML文件的方法SocketHelper封裝Socket通信連接盒數(shù)據(jù)交互的方法Log封裝程序日志的借款方法表3-2DAL層的類類名類作用說明BaseDao封裝數(shù)據(jù)庫訪問的基本方法T_ConfigDao封裝了對數(shù)據(jù)庫配置信息表操作的方法T_MediaDao封裝了對數(shù)據(jù)庫資源表的操作的方法T_TemplateDao封裝了對數(shù)據(jù)庫模板表的操作的方法T_TermTaskDao封裝了對數(shù)據(jù)庫任務(wù)表的操作的方法
4系統(tǒng)實現(xiàn)4.1用戶體驗設(shè)計原則用戶體驗設(shè)計是基于人機界面設(shè)計理論的,一個合理的人機界面會給用戶帶來良好的用戶體驗效果。一旦建立起用戶界面的原型,就必須對它進行評估,以確定其是否滿足用戶的需求。對于交互式系統(tǒng),用戶體驗設(shè)計和數(shù)據(jù)設(shè)計、體系結(jié)構(gòu)設(shè)計及過程設(shè)計一樣重要。用戶體驗的設(shè)計質(zhì)量,直接影響用戶對軟件產(chǎn)品的評價,從而影響軟件產(chǎn)品的競爭力和壽命,例如出錯信息和警告信息,它們是出現(xiàn)問題時交互式系統(tǒng)給出的“壞消息”。出錯信息設(shè)計的不好,將向用戶提供無用的甚至誤導(dǎo)的信息,反而會加重用戶的挫敗感。因此必須對用戶體驗設(shè)計給與足夠的重視。用戶體驗設(shè)計的原則是:A)用戶界面適合于軟件的功能。B)容易理解。C)風(fēng)格一致。D)及時反饋信息。E)出錯處理。F)操作方便。G)個性化。針對用戶體驗設(shè)計原則進行的詳細設(shè)計將在4.2節(jié)展開詳細論述。4.2詳細設(shè)計及實現(xiàn)4.2.1主窗體設(shè)計及實現(xiàn)本系統(tǒng)的主窗體如圖2-1、2-2所示,用戶界面素雅莊重,適合本軟件的特點,將系統(tǒng)功能分類組合,這樣用戶使用時可以方便定位到相關(guān)操作,帶給用戶很好的體驗效果。4.2.2查詢窗體設(shè)計及實現(xiàn)查詢界面窗體如圖4-2所示,左上角顯示從主界面進入時選擇的查詢方向,上部橫條的Listbox為組織查詢選擇區(qū)域。組織結(jié)構(gòu)可粉多層次,多層次的組織結(jié)構(gòu)在相應(yīng)的組織結(jié)構(gòu)上的下拉菜單中展示。選擇好組織結(jié)構(gòu)后,頁面左側(cè)是豎條的Listbox即文件類型展示區(qū)域會展示這個組織結(jié)構(gòu)的所有文件類型,可選擇類型,類型不分層次。選擇好組織結(jié)構(gòu)和文件類型,更加組織結(jié)構(gòu)和文件類型的唯一編碼在資源表中查詢符合要求的文件,將這些文件的名稱以列表的形式展示在頁面中心部分,分看查閱的文件如下圖的資源列表和問轉(zhuǎn)化成果不能查看的資源如圖中的未轉(zhuǎn)化的資源列表。圖4-2查詢窗體4.2.3文件展示窗體設(shè)計及實現(xiàn)文件展示窗體設(shè)計中間區(qū)域為展示區(qū)域,有下角為返回鍵,如圖4-3:圖4-3展示窗體文檔文件展示,圖片文件展示,視頻文件展示共同繼承于UserPlayer,UserPlayer繼承于UserControl(自定義控件)具體如下:publicabstractclassUserPlayer:UserControl{//結(jié)束標記publicboolIsEnd=false;publicstringRSource;///<summary>///暫停播放///</summary>publicabstractvoidPause();///<summary>///恢復(fù)播放///</summary>publicabstractvoidResume();///<summary>///停止播放///</summary>publicabstractvoidStop();///<summary>///播放節(jié)目///</summary>publicabstractvoidPlay();}文檔文件展示,圖片文件展示,視頻文件展示各自實現(xiàn)要展示內(nèi)容的具體方法,相關(guān)展示如下:文檔文件展示(swf源文件是ppt)如圖4-4,圖片文件展示如圖4-5,視頻文件展示如圖4-6:圖4-4swf展示圖4-5圖片展示圖4-6視頻展示4.2.4數(shù)據(jù)交互設(shè)計及實現(xiàn)數(shù)據(jù)交換是指一體機和平臺間的數(shù)據(jù)交換,一般是指將平臺管理的信息資源按照約定的通訊機制推送到一體機,一體機接收后本地存儲,供用戶查詢顯示。平臺作為數(shù)據(jù)提供方,在設(shè)計上必須支持多終端并發(fā)的數(shù)據(jù)交換請求,在數(shù)據(jù)交換的響應(yīng)速度、吞吐率上提供高效可靠保障。數(shù)據(jù)交換采用socket通訊,一體機與平臺通信業(yè)務(wù)交互流程包括:運行參數(shù)更新、信息資源下載、模板參數(shù)更新,一體機心跳上報(任務(wù)發(fā)布處理)等如圖4-7?;就ㄐ帕鞒倘缦拢翰襟E一:通信發(fā)起方發(fā)起業(yè)務(wù)請求步驟二:接收方接收到合法數(shù)據(jù)請求后,判斷業(yè)務(wù)類型,進行相應(yīng)處理,返回數(shù)據(jù)處理結(jié)果。圖4-7通信過程在數(shù)據(jù)交換通訊協(xié)議設(shè)計上必須考慮協(xié)議高效性和可擴展性,支持接收超時、數(shù)據(jù)傳輸加密。4.2.5文件格式轉(zhuǎn)換設(shè)計及實現(xiàn)轉(zhuǎn)碼采用我自己建立的動態(tài)鏈接庫TKMediaKitDemo進行轉(zhuǎn)碼轉(zhuǎn)碼部分沒有界面,轉(zhuǎn)碼包含一下格式如下:publicenumTransformFormat{//文檔轉(zhuǎn)碼Doc2Xps=0,Doc2Pdf=1,Ppt2Xps=2,Ppt2Pdf=3,Xls2Xps=4,Xls2Pdf=5,Doc2Swf=6,Ppt2Swf=7,Xls2Swf=8,Pdf2Swf=9,//視頻轉(zhuǎn)碼ToMp4ByHandBrake=10,ToMp4ByFfmpeg=11,//圖片轉(zhuǎn)碼ImageEncrypt=12,ImageNoEncrypt=13,}通過配置文件ConvParam.xml進行轉(zhuǎn)碼配置詳情如下:ConvParam.xml內(nèi)容如下:<?xmlversion="1.0"encoding="GBK"?><parampath="D:\ProgramFiles\"needConv="1"maxTryCount="300"><documentoutputWord="xps"outputPowerpoint="swf"outputExcle="swf">文檔轉(zhuǎn)化的配置,設(shè)置文檔輸出格式</document><pictureencrypt="0"width="800"height="600"size="2"quality="80"outputFormat="jpg">圖片轉(zhuǎn)化的配置</picture><videotool="handbrake"outputFormat="mp4">視頻轉(zhuǎn)化的配置,工具,輸出格式</video></param>ConvParam.xml說明:param標簽下path為轉(zhuǎn)碼操作的工作目錄即資源存放目錄,needCony表示是否啟用編碼,maxTryCount為一個資源轉(zhuǎn)碼最大嘗試次數(shù);document標簽下outputWord表示word文件的輸出格式,outputPowerpoint表示Powerpoint文件的輸出格式,outputExcle表示Excle文件的輸出格式;picture標簽encrypt表示是否加密,width表示輸出寬度,height表示輸出高度,size表示需要轉(zhuǎn)化圖片的最小大小單位M,quality表示轉(zhuǎn)化質(zhì)量范圍0到100outputFormat表示輸出格式;video標簽下tool表示轉(zhuǎn)碼攻擊選擇ffmpeg和handbrake2種可選,outputFormat為輸出格式。具體轉(zhuǎn)碼實現(xiàn)方法Encodec()如下:///<summary>///采用動態(tài)鏈接庫aTKMediaKitDemo轉(zhuǎn)碼?///</summary>publicvoidEncodec(){intrtCode=0;encodeMedia=T_MediaDao.GetUnCovMedia(refrtCode);//獲取一個未轉(zhuǎn)換的資源if(rtCode!=1){PrintLog("數(shù)oy據(jù)Y庫a交?互£¤失o?ì敗?¨1");return;}if(encodeMedia==null){PrintLog("沒?有?D獲?取¨?到ì?要°a轉(zhuǎn)áa換?的ì?媒?體??資á¨o源??");return;}stringinput=@ComClass.strPath+@encodeMedia.mediaName;//原-始o?文?件t路?¤徑?stringoutput=input;//輸o?出?路?¤徑?inttrycount=0;Int32.TryParse(encodeMedia.covTryCount,outtrycount);if(trycount>ComClass.MaxTryCount||!File.Exists(input)){intcode=0;T_MediaDao.UpdateStatusFlag(encodeMedia.mediaId,"3",refcode);if(code==1){PrintLog("嘗?é試o?次??數(shù)oy過y多¨¤更¨1新?狀á??態(tài)??為a6成¨|功|:êo"+encodeMedia.mediaId);}else{PrintLog("嘗?é試o?次??數(shù)oy過y多¨¤更¨1新?狀á??態(tài)??為a6失o?ì敗?¨1:êo"+encodeMedia.mediaId);}return;}TKMediaKittkMediaKit=newTKMediaKit();TKMediaKit.TransformFormatformat=TKMediaKit.TransformFormat.Doc2Xps;TKMediaKit.ConversionResultresult;if(encodeMedia.mediaAttr=="1"){stringext=encodeMedia.mediaName.Substring(encodeMedia.mediaName.LastIndexOf("."));if(ext.ToLower().Contains("doc")){if(ComClass.document_outputword=="xps"){format=TKMediaKit.TransformFormat.Doc2Xps;}elseif(ComClass.document_outputword=="pdf"){format=TKMediaKit.TransformFormat.Doc2Pdf;}elseif(ComClass.document_outputword=="swf"){format=TKMediaKit.TransformFormat.Doc2Swf;}output=output.Substring(0,output.LastIndexOf(".")+1)+ComClass.document_outputword;//輸o?出?路?¤徑?}elseif(ext.ToLower().Contains("ppt")){if(ComClass.document_outputpowerpoint=="xps"){format=TKMediaKit.TransformFormat.Ppt2Xps;}elseif(ComClass.document_outputpowerpoint=="pdf"){format=TKMediaKit.TransformFormat.Ppt2Pdf;}elseif(ComClass.document_outputpowerpoint=="swf"){format=TKMediaKit.TransformFormat.Ppt2Swf;}output=output.Substring(0,output.LastIndexOf(".")+1)+ComClass.document_outputpowerpoint;//輸o?出?路?¤徑?}elseif(ext.ToLower().Contains("xls")){if(ComClass.document_outputexcle=="xps"){format=TKMediaKit.TransformFormat.Xls2Xps;}elseif(ComClass.document_outputexcle=="pdf"){format=TKMediaKit.TransformFormat.Xls2Pdf;}elseif(ComClass.document_outputexcle=="swf"){format=TKMediaKit.TransformFormat.Xls2Swf;}output=output.Substring(0,output.LastIndexOf(".")+1)+ComClass.document_outputexcle;//輸o?出?路?¤徑?}elseif(ext.ToLower().Contains("pdf")){format=TKMediaKit.TransformFormat.Pdf2Swf;output=output.Substring(0,output.LastIndexOf(".")+1)+"swf";//輸o?出?路?¤徑?}}elseif(encodeMedia.mediaAttr=="2"){stringext=encodeMedia.mediaName.Substring(encodeMedia.mediaName.LastIndexOf("."));FileInfofile=newFileInfo(input);longsize=file.Length;//文?件t大?¨?小?。?êbytedoublepicturesize=1;double.TryParse(ComClass.picture_size,outpicturesize);if(size*1024<picturesize&&ext==ComClass.picture_outputformat&ComClass.picture_encrypt=="0"){intrtCode1=0;T_MediaDao.UpdateStatusFlag(encodeMedia.mediaId,"1",refrtCode1);if(rtCode1==1){PrintLog("不?需¨¨要°a轉(zhuǎn)áa換?,ê?已°?需¨¨該?需¨¨要°a轉(zhuǎn)áa化?¥標à¨o志?:êo"+encodeMedia.mediaName);}return;}if(ComClass.picture_encrypt=="1"){format=TKMediaKit.TransformFormat.ImageEncrypt;}else{format=TKMediaKit.TransformFormat.ImageNoEncrypt;}List<int>pictureiof=newList<int>();intwidth=500;Int32.TryParse(ComClass.picture_width,outwidth);pictureiof.Add(width);intheight=500;Int32.TryParse(ComClass.picture_height,outheight);pictureiof.Add(height);intquality=70;Int32.TryParse(ComClass.picture_quality,outquality);pictureiof.Add(quality);tkMediaKit.SetCodecParam(pictureiof);output=output.Substring(0,output.LastIndexOf(".")+1)+ComClass.picture_outputformat;//輸o?出?路?¤徑?}elseif(encodeMedia.mediaAttr=="3"){stringext=encodeMedia.mediaName.Substring(encodeMedia.mediaName.LastIndexOf("."));if(ext.ToLower().Contains(ComClass.video_outputformat)){intrtCode1=0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省資陽市安岳中學(xué)2025-2026學(xué)年八年級上學(xué)期期末考試道德與法治試卷(含答案)
- 湖北省黃岡市黃梅縣育才高級中學(xué)2025-2026學(xué)年高二上學(xué)期1月月考地理試題(含答案)
- 高強鋼在鋼結(jié)構(gòu)中的應(yīng)用要點
- “十五五”系列研究報告:產(chǎn)業(yè)政策邁向2035年的關(guān)鍵密碼
- 2026山東聊城要素綜合服務(wù)有限公司招聘1人備考考試題庫及答案解析
- 2026年聊城市中醫(yī)醫(yī)院“水城優(yōu)才”青年人才引進備考考試題庫及答案解析
- 2026廣東廣州市增城區(qū)華南師范大學(xué)附屬朱村實驗小學(xué)臨聘教師招聘考試備考試題及答案解析
- 公廁專項施工方案(3篇)
- 愛心會員活動策劃方案(3篇)
- 廣場水電施工方案(3篇)
- 學(xué)校教師情緒管理能力提升
- 醫(yī)療器械生產(chǎn)質(zhì)量管理規(guī)范自查表(2026版)
- 銀行個人貸款風(fēng)險評估管理辦法
- 2025年度電氣工程師述職報告
- 生活委員培訓(xùn)
- 檔案館機房設(shè)施設(shè)備管理制度
- 2026年質(zhì)量員之土建質(zhì)量基礎(chǔ)知識考試題庫及答案(必刷)
- 2025年中國抑郁障礙防治指南
- FGR的基因檢測策略與臨床解讀
- 建筑施工工地安全隱患排查清單
- 承壓管道焊接培訓(xùn)課件
評論
0/150
提交評論