mpxJ簡介
MPXJ類包提供創建、讀寫Microsoft Project Exchange (MPX)檔案,Project 2002 和 2003 MSPDI XML 檔案, 與讀起取Microsoft Project 98, 2000, 2002, 和 2003 (MPP) 檔案。
mpp簡單介紹: mpp指的是Microsoft Office Project檔案。用於定製計畫,主要參數有任務名稱,資源名稱,工期,開始時間,結束時間,工期通過工作時間及開始時間結束時間推算出來(工作時間:每星期工作幾天,工作時間段為什麼。可指定特定的工作日,工作時間段可單獨設定)。也可以拆分任務,例如:一汽新需求外委,中間幾天可能需要解決bug那么這幾天不算在工期內,但是時間段包含解決bug的消耗時間。
JAVA應用程式中使用MPXJ
需要導入的JAR包:
activation.jar,JAXB-api.jar,jaxb-impl.jar,jsr173_1.0_api.jar,poi-3.2-FINAL-20081019.jar,mpxj.jar。(mpxj依賴於上面的jar包。) 以上包都可以在mpxj網站下載,直接下載mpxj3.0 的源碼,源碼中包含以上包。(注意:下載的mpxj源碼中自帶的mpxj.jar包直接導入項目會有問題,請將源碼直接編譯成class檔案然後打成jar包再導入系統。)
重要的類及屬性簡介
Task | 階段 |
Name : | 階段名稱。 |
UniqueID: | 唯一編號。 |
ID: | 編號(唯一編號和編號可能不同)。 |
OutlineLevel: | 階段級別。(1代表最大的一個階段,以此類推) |
Duration: | 工期。(已天為單位) |
Start: | 階段開始時間 |
Finish: | 階段結束時間 |
ActualStartDate: | 實際開始時間 |
ActualFinishDate: | 實際完成時間 |
資源分配中的信息直接影響到導出mpp的準確性,如果只有任務的工期,沒有在ResourceAssignment中賦值則導出的階段工期就會出錯。
ResourceAssignment | 資源分配 |
RemainingWork: | 工期,已小時為單位例如階段工期為5,則work=5*8 |
Work: | 同上 |
ActualWork: | 實際工作時間也是已小時為單位 |
Start: | 階段開始時間 |
Finish: | 階段結束時間 |
TimephasedResourceAssignment | 拆分時間段 |
Start: | 時間段開始時間 |
Finish: | 時間段結束時間 |
TotalWork: | 總工作時間 |
WorkPerDay: | 每天的工作時間,已分鐘為單位,一般為480 |
ProjectCalendar | 工作日曆 |
Name | 日曆名稱 |
setWorkingDay | 設定星期幾是否工作 |
addCalendarHours | 設定星期幾工作時間段 |
ProjectCalendarException | 特殊工作日 |
FromDate: | 開始時間 |
ToDate: | 結束時間 |
Working | 是否工作 |
Range | 工作時間段 |
注意事項
a)存儲信息時不必將每個任務的"TimephasedResourceAssignment"信息存儲起來,只有該階段有拆分信息時該信息才有用。如果該階段沒有拆分存入該信息,導出時會導致數據錯誤。(TimephasedResourceAssignment:拆分時間段)
b)如果導入導出不一致可將導入的mpp轉成xml,與導出的xml對比。(可能差別會很大,最好用刪除的方法排除錯誤信息)
c)該項目還不完善有的功能目前還無法實現,如果碰到問題最好先在mpxj中直接導入導出試試看支不支持該功能。