一、開(kāi)發(fā)背景
最近在使用微軟的Office Project 2010 進(jìn)行項(xiàng)目管理,看到排的滿滿的計(jì)劃任務(wù),一個(gè)個(gè)地被執(zhí)行完畢,還是很有成就感的。其實(shí),不光是在工作中可以使用Project進(jìn)行項(xiàng)目進(jìn)度控制,同樣可以把這款軟件應(yīng)用在日常的生活中,比如為閱讀某本書排一個(gè)計(jì)劃,而任務(wù)單元就是本書的目錄,當(dāng)然粒度可以自己定制;也可以為健身排一個(gè)計(jì)劃,每周去幾次健身房、每次做多少個(gè)動(dòng)作、做什么類型的動(dòng)作,都可以提前排程,每完成一項(xiàng)就就在任務(wù)進(jìn)度上狠狠地輸入100%,那是多么爽的事啊。
但是,通過(guò)一段時(shí)間的使用,我發(fā)現(xiàn)自己有一個(gè)個(gè)性化的需求,就是習(xí)慣為各種狀態(tài)的任務(wù)加上不同的背景色,這樣就會(huì)很清晰直觀地掌握任務(wù)的總體完成情況;還有就是很不喜歡Project自帶的創(chuàng)建任務(wù)的方式,希望可以以自己的方式來(lái)創(chuàng)建任務(wù),比如任務(wù)的資源一般是我自己的名字(大多數(shù)情況),所以我希望創(chuàng)建任務(wù)的時(shí)候,默認(rèn)帶出資源名稱,再比如我喜歡用微軟雅黑作為默認(rèn)字體,但是每次都是設(shè)置好單個(gè)單元格后,再用格式刷去刷,很是麻煩,再比如表示任務(wù)狀態(tài)的背景色,也是自己一點(diǎn)點(diǎn)用格式刷去刷的,如果不常用這個(gè)工具還好,但是總是這樣難免讓人反感,所以就產(chǎn)生了這個(gè)想法。以上就是我自己的個(gè)性化需求,如果后續(xù)有其他想法,還可以自己擴(kuò)展,把懶人的風(fēng)格發(fā)揚(yáng)到底。在園子里也找了一些相關(guān)資料,但是和我的出發(fā)點(diǎn)都不是很吻合,所以廢話不多說(shuō),自己動(dòng)手,豐衣足食。
二、Project Object 模型
之前做過(guò)Word的插件開(kāi)發(fā),里面的各個(gè)組件(Range,Paragraph,Selection)等都是有規(guī)律可循的,大多數(shù)對(duì)象都有自己的集合,而且多個(gè)對(duì)象之間的關(guān)聯(lián)比較密切,但是Project的模型讓我很費(fèi)解,比如里面的單元格Cell,居然不存在集合的概念(見(jiàn)微軟官方文檔),這里面比較重要的模型有以下幾個(gè):Application、Task、Cell、Resource等,當(dāng)然,還有其他的比較重要的模型,只是不是很常用,在此不做說(shuō)明。
Represents the active cell. (There is no collection for Cell objects.) The Cell object can be accessed only through theActiveCell property of the Application object.
Represents a task. The Task object is a member of the
網(wǎng)友評(píng)論