鄒 珺
(蘇州農(nóng)業(yè)職業(yè)技術(shù)學(xué)院,江蘇 蘇州 215008)
zouj@szai.edu.cn
目前市面上有很多功能強(qiáng)大的Project軟件可以用來(lái)進(jìn)行管理項(xiàng)目,但是這類(lèi)軟件由于通用性較強(qiáng),雖然提供了很多功能,但沒(méi)有源代碼,對(duì)于單純進(jìn)行任務(wù)管理來(lái)說(shuō),培訓(xùn)與授權(quán)的費(fèi)用相對(duì)較高,不便于企業(yè)后期項(xiàng)目復(fù)雜時(shí)進(jìn)行二次開(kāi)發(fā)。因此,需要一套軟件系統(tǒng)來(lái)管理任務(wù),具備基本的任務(wù)管理功能,能新增和編輯任務(wù),確定任務(wù)的完成時(shí)間,指定任務(wù)優(yōu)先級(jí),將任務(wù)分配到一個(gè)或多個(gè)資源,提供圖形化的顯示功能。大部分用戶可以立即上手進(jìn)行任務(wù)管理,企業(yè)在系統(tǒng)維護(hù)方面能減少一定的人力和物力,進(jìn)而完善任務(wù)的信息化過(guò)程,不僅提升了項(xiàng)目工作人員的工作積極性,也大大提升了工作效率,便于企業(yè)整合內(nèi)部其他管理系統(tǒng)。
本系統(tǒng)包含任務(wù)信息的編輯、修改功能,具有圖形化的任務(wù)優(yōu)先級(jí)選擇、任務(wù)分類(lèi)選擇,能夠在甘特圖上顯示任務(wù)信息,對(duì)任務(wù)涉及的資源與任務(wù)分類(lèi)進(jìn)行管理。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 System structure diagram
開(kāi)發(fā)任務(wù)管理系統(tǒng)需要的軟件環(huán)境如下:
(1)Visual Studio 2010集成化開(kāi)發(fā)環(huán)境,使用微軟C#3.5以上版本的語(yǔ)言作為開(kāi)發(fā)語(yǔ)言,本系統(tǒng)使用C# 4.0作為開(kāi)發(fā)語(yǔ)言。
(2).NET Framework 3.5或.NET Framework 4.0平臺(tái)。在安裝微軟公司的Visual Studio開(kāi)發(fā)環(huán)境時(shí),會(huì)自動(dòng)安裝相應(yīng)的.NET Framework。比如Visual Studio 2008將安裝.NET Framework 3.5,Visual Studio 2010將安裝.NET Framework 4.0。
首次啟動(dòng)任務(wù)管理系統(tǒng)時(shí),會(huì)顯示如圖2所示的主界面。該界面包含菜單欄、工具欄、任務(wù)搜索欄、任務(wù)列表和當(dāng)前任務(wù)詳細(xì)信息。
圖2 任務(wù)管理系統(tǒng)主界面Fig.2 The main interface of the task management system
任務(wù)列表顯示了當(dāng)前要完成的任務(wù)清單,選中一個(gè)任務(wù),將在任務(wù)詳細(xì)信息窗口中顯示任務(wù)的具體執(zhí)行信息。用戶可以在任務(wù)搜索欄中按特定的條件過(guò)濾任務(wù),或者單擊工具欄上的“查看所有任務(wù)”按鈕顯示所有任務(wù)信息。
當(dāng)用戶單擊工具欄上的“任務(wù)甘特圖”按鈕后,將在窗口上顯示任務(wù)的甘特圖視圖,如圖3所示。
圖3 任務(wù)甘特圖視圖Fig.3 Gantt chart view of tasks
甘特圖提供了直觀的任務(wù)完成進(jìn)度的圖表表示形式。通過(guò)使用甘特圖,任務(wù)執(zhí)行人員可以查看當(dāng)前任務(wù)完成的進(jìn)度、尚需要的時(shí)間等信息;還可以直接雙擊某個(gè)任務(wù),將彈出編輯任務(wù)窗口,在該窗口中可以看到任務(wù)的詳細(xì)信息,并且可以改變?nèi)蝿?wù)的設(shè)置。任務(wù)編輯窗口如圖4所示。
圖4 添加/編輯任務(wù)窗口Fig.4 Add/edit task window
工具欄或菜單欄的“資源列表”按鈕提供了資源的列表顯示。資源是指任務(wù)要分配到的目標(biāo)人員,任務(wù)涉及的人員提前添加到系統(tǒng)中。在創(chuàng)建一個(gè)具體的任務(wù)時(shí),資源信息被顯示為復(fù)選框列表,允許用戶選擇資源。資源列表如圖5所示。
圖5 資源列表窗口Fig.5 Resource list window
用戶界面直接與用戶交互,用戶對(duì)一個(gè)軟件的初始印象通常與用戶界面設(shè)計(jì)有很大關(guān)系,有時(shí)用戶界面能直接決定一個(gè)軟件產(chǎn)品的成敗。任務(wù)管理系統(tǒng)使用標(biāo)準(zhǔn)的Windows Forms技術(shù),采用經(jīng)典的MDI窗體風(fēng)格,并且為了實(shí)現(xiàn)界面的可重用性,將一些常用的界面封裝為用戶控件,提高了開(kāi)發(fā)的效率。
主窗口是一個(gè)標(biāo)準(zhǔn)的MDI容器窗口,窗口名稱(chēng)是TaskManagerMainForm,所有的子窗口都在這個(gè)容器中顯示。主窗口的IsMdiContainer屬性設(shè)置為T(mén)rue,在主窗口中放置一個(gè)MenuStrip控件用來(lái)顯示下拉菜單,以及一個(gè)ToolStrip控件用來(lái)顯示工具欄。用戶界面設(shè)計(jì)如圖6所示。
圖6 系統(tǒng)主界面設(shè)計(jì)Fig.6 The main interface design of the system
主界面顯示時(shí),任務(wù)管理窗口也會(huì)同時(shí)打開(kāi),為了避免代碼冗余,可以復(fù)用主界面的窗口打開(kāi)代碼,定義一個(gè)OpenMDIChildForm()方法。主界面的Shown事件在主界面顯示時(shí)已加載,該事件通過(guò)調(diào)用OpenMDIChildForm()方法來(lái)實(shí)現(xiàn)任務(wù)管理窗口的功能。Shown事件處理及相關(guān)的OpenMDIChildForm()方法的實(shí)現(xiàn)代碼如下:
任務(wù)管理窗口提供了當(dāng)前系統(tǒng)中所有任務(wù)的詳細(xì)信息,實(shí)現(xiàn)了兩欄式的布局結(jié)構(gòu),位于屏幕左邊的是任務(wù)列表,由DataGridView控件構(gòu)成;右邊是TaskViewer用戶控件,可以顯示任務(wù)詳細(xì)信息;頂部的工具欄主要是ComboBox控件,根據(jù)條件進(jìn)行過(guò)濾,如圖7所示。
圖7 任務(wù)管理窗口Fig.7 Task management window
當(dāng)任務(wù)管理窗口打開(kāi)時(shí),會(huì)觸發(fā)Shown事件,事件處理代碼實(shí)現(xiàn)數(shù)據(jù)加載,同時(shí)調(diào)用BindDropDowns()方法向DropDownList控件中插入數(shù)據(jù),使用LoadTaskList()方法向DataGridView和TaskViewer控件中插入需要顯示的數(shù)據(jù)。BindDropDowns()方法的實(shí)現(xiàn)代碼如下:
FormatDataGridRow()方法用來(lái)格式化DataGridView的行。該方法可以使不同的任務(wù)顯示自己獨(dú)有的特效,便于用戶識(shí)別,其實(shí)現(xiàn)代碼如下:
LoadSelectedTaskDetail()方法使用Task對(duì)象中的屬性來(lái)插入TaskViewer用戶控件中,TaskViewer控件接收一個(gè)Task對(duì)象來(lái)填充自身。當(dāng)選中第一行時(shí),LoadSelectedTaskDetail()方法將從DataGridViewRow的DataBoundItem中尋找Task對(duì)象,傳遞給在用戶控件中定義的SetTaskDetail。該方法的定義代碼如下:
為了使用戶擁有良好的使用體驗(yàn),任務(wù)甘特圖窗口提供了以時(shí)間為刻度的甘特圖表示方式。使用自定義的GanttChart控件,該控件從DataGridView網(wǎng)格控件中派生。其實(shí)現(xiàn)的技巧在于將DataGridView中的單元格呈現(xiàn)樣式根據(jù)任務(wù)的時(shí)間跨度進(jìn)行變更,使用戶看到類(lèi)似甘特圖的效果。
為了整合甘特圖表與Task,在示例中創(chuàng)建了一個(gè)用戶控件GanttViewer。該用戶控件由一個(gè)DataGridView與甘特圖表控件GanttChart組成,在控件內(nèi)部通過(guò)加載Task任務(wù)列表,交給甘特圖控件顯示甘特圖。在TaskGanttChartForm窗口的Load事件處理代碼中,同樣為窗口上方的搜索下拉列表框控件填充選擇值,以便進(jìn)行過(guò)濾,然后使用自定義的LoadTaskList()方法根據(jù)特定的選擇條件加載任務(wù)列表。其實(shí)現(xiàn)代碼如下:
本文使用Windows Forms實(shí)現(xiàn)了任務(wù)管理系統(tǒng)。用戶控件技術(shù)在.NET Web應(yīng)用程序中的使用極為廣泛,使用用戶控件封裝一些需要重復(fù)使用的模塊,將用戶界面模塊化,大大提升了維護(hù)效率。在任務(wù)管理系統(tǒng)中,將甘特圖查看、任務(wù)詳細(xì)信息查看封裝為用戶控件,為系統(tǒng)維護(hù)及界面的變更提供了便利。