一、开发背景
最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的。其实,不光是在工作中可以使用Project进行项目进度控制,同样可以把这款软件应用在日常的生活中,比如为阅读某本书排一个计划,而任务单元就是本书的目录,当然粒度可以自己定制;也可以为健身排一个计划,每周去几次健身房、每次做多少个动作、做什么类型的动作,都可以提前排程,每完成一项就就在任务进度上狠狠地输入100%,那是多么爽的事啊。
但是,通过一段时间的使用,我发现自己有一个个性化的需求,就是习惯为各种状态的任务加上不同的背景色,这样就会很清晰直观地掌握任务的总体完成情况;还有就是很不喜欢Project自带的创建任务的方式,希望可以以自己的方式来创建任务,比如任务的资源一般是我自己的名字(大多数情况),所以我希望创建任务的时候,默认带出资源名称,再比如我喜欢用微软雅黑作为默认字体,但是每次都是设置好单个单元格后,再用格式刷去刷,很是麻烦,再比如表示任务状态的背景色,也是自己一点点用格式刷去刷的,如果不常用这个工具还好,但是总是这样难免让人反感,所以就产生了这个想法。以上就是我自己的个性化需求,如果后续有其他想法,还可以自己扩展,把懒人的风格发扬到底。在园子里也找了一些相关资料,但是和我的出发点都不是很吻合,所以废话不多说,自己动手,丰衣足食。
二、Project Object 模型
之前做过Word的插件开发,里面的各个组件(Range,Paragraph,Selection)等都是有规律可循的,大多数对象都有自己的集合,而且多个对象之间的关联比较密切,但是Project的模型让我很费解,比如里面的单元格Cell,居然不存在集合的概念(见微软官方文档),这里面比较重要的模型有以下几个:Application、Task、Cell、Resource等,当然,还有其他的比较重要的模型,只是不是很常用,在此不做说明。
Represents the active cell. (There is no collection for Cell objects.) The Cell object can be acc