T_temp.fieldvalues(‘ Date’):=strtodate(Datearray[I].text);//将字符串转换为时间类型项目管理者联盟 End;项目管理者联盟 Except //错误捕捉training.mypm.net messageDlg('有的负责人没有确定,或是时间不对,请确认所有的输入筐不为空!' ,项目管理者联盟 mtWarning, [mbyes],0); //错误接口项目管理者联盟 end; //end for try转自项目管理者联盟 它的功能为将try 直到end以前的代码进行保护,如果一切正常,编译器将执行try关键字后面的正常模块。一旦发现出错,将执行Except后的语句,在本例中,strtodate()函数为字符串转时间日期函数,在软件运行过程中有可能出现上文所提到的非法输入。因此运用这种方法解决此类问题是一个不错的选择。项目管理者联盟 3.4.2项目经理对整个项目进行监督和管理项目管理者联盟 正如上文所述,风险监督是一个反复进行的过程。因此, RM1给高级经理以及项目经理提供了对项目的风险进行监控的平台。对项目经理而言,监控当前项目所在的阶段的风险是至关重要的,Rm1实现了将风险水平由大到小进行排序,使得项目经理及成员对目前的首要工作倍加注意。service.mypm.net 比如项目经理张无忌进入系统,单击白色操作区域内的“项目浏览”按钮,能够对项目所有阶段的风险水平进行一个总览。如图3-4,他选择了“系统实施”阶段的风险清单,因此蓝色显示区域就按照从大到小的顺序将该阶段的风险水平显示出来。

图3-4 service.mypm.net 其实现方式主要是先将临时生成的Temp表进行查询排序,其语句为:项目管理论坛 With Query1 do begin //打开query1域 项目管理者联盟 Close; //关闭查询为输入做准备service.mypm.net Sql.clear; //清空SQL语句 项目管理者联盟 Sql.add(‘select * from temp.db’); //编写SQl语句项目经理博客 Sql.add(‘order by Rank DESC’); //降序排列 PgMp.mypm.net Open; //查询打开项目管理者联盟 End;PgMp.mypm.net 然后生成的风险清单。并且,为了方便用户,笔者在系统中设计了“报表预览”按钮,能够以图表的形式对所有风险作一个汇总,以方便打印和浏览。如图3-5

它主要利用了Delphi中的Quickrep控件功能。笔者在此不加赘述。项目经理博客 3.4.3高层经理对公司所有项目进行监督和管理项目管理论坛 对于风险监督,除了项目经理应该负起责任来之外。高级经理更是要对公司内部的所有项目进行监控。因此,RM1的高层经理界面当然少不了对所有项目的浏览功能。如图3-6所示:

图3-6项目管理者联盟 在高级经理“余光中”进入之后,单击操作区域中的“项目浏览”按钮,我们可以看到Treeview1控件根据数据库中所有在建项目自动生成了相应的节点,使得所有在建的项目以浏览树的形式呈现在高级经理眼前。它的实现方式为:service.mypm.net var node: TtreeNode;项目管理者联盟 begintraining.mypm.net Node :=Treeview1.items.add(nil, ‘First level’); //生成第一层节点项目管理者联盟 Treeview1.items.addchild(Node ,‘Second level’); //生成子节点项目管理者联盟 End; 以此来动态生成节点。并且,当我们单击任意一个项目的任意一个阶段时,都会自动显示被选中阶段的风险清单。同时,绿色提示区域中的信息会随之而改变。不仅如此,当高级经理单击操作区中的“项目报告”按钮时,将会对当前公司的所有在建项目的风险情况作一个汇报。同样,我们也可以以报表的形式将它打印出来。service.mypm.net 3.5 RM1是如何实现对项目风险的主观评分项目管理者联盟 在RM1系统中,主观评分法是由高层经理组织专家来完成的,所以用户角色应该为高层经理,相应地,高层经理在进入系统后点击白色操作区域中的“项目分析”按钮,弹出“项目评审”界面,如图3-7:

图3-7 在其正上方,用Dbgrid控件列出了当前正在招投标或在审批的项目,我们可以任意选择一个项目进行分析(图中选择为世纪馆信息系统项目)在窗口的中部,我们把系统周期的四个阶段作为左列,风险因素影响的各个主要方面作为横列。它们包括成本、进度、质量、范围这四个方面,其思想与上文介绍的主观评分法并无二致。从图中可以看出,该项目经过专家评审的总体风险水平为0.5069,低于公司可接受风险水平0.6。
3.6 RM1是如何实现登陆模块和Splash画面的项目管理者联盟 为了实现软件保密性,笔者以登陆界面区别不同的用户角色。对于错误的以及没有相应权限的用户拒绝登陆,对于合法用户调用不同的程序界面。它的思路比较简单,主要利用了两个查询(Query)控件。如图3-8

图3-8bbs.mypm.net 为了使软件更加专业化,我设计了Splash画面,它将在用户点击程序图标之后出现在屏幕中央,停留约两秒钟后消失。其编程方法与通用的Splash相同。如图3-9所示:

图3-9项目管理培训 3.7 本章小结talent.mypm.net 本章主要从实际的角度对风险管理的知识内容进行了模拟和应用,并生成了风险管理支持系统RM1(Risk Management System Version 1.0)。它牢固遵循我们在第二章中阐述的风险管理的四个步骤。同时,为了使得软件更加专业化,笔者根据通用的设计方式构建了登陆和Splash画面。
第 四 章 结 束 语
项目管理者联盟 4.1 全文总结 本文在第一章中阐明了风险管理的重要性;在第二章中介绍了风险管理的理论知识,着重阐述风险识别、风险评估、风险评价和风险管理;为了使理论结合实际,在本文第三章中详细介绍了RM1-Risk Management Version 1.0 的组成以及它是如何实现相应的风险管理步骤的。项目管理论坛 4.2 心得和体会PgMp.mypm.net 首先,该软件有很大的改进空间。比如,在高层经理进入系统之后,对每一个项目,应该列出风险水平最大的几个风险以引起高层经理的重视,但是由于没有掌握主从查询等技术而未能实现这些功能。希望以后能够不断改进和升级。不过,由于是首次学习和使用Delphi7,能够克服相当多的技术难题并最终实现该系统,笔者甚感欣慰,尤其是在非典型性肺炎肆虐的2003年春季。转自项目管理者联盟 其次,笔者在这次设计过程中发现,学习知识必须注意理论与实际工作相结合。只有通过实际操作,才能真正理解所学知识。项目管理者联盟 4.3 致谢bbs.mypm.net 在此向我的导师左美云博士表示感谢,他对我们的毕业设计要求严格,工作认真严谨,让我受益匪浅。
4.5 参考文献talent.mypm.net 【1】卢有杰 ,卢家仪 著:《项目风险管理》,清华大学出版社 1998项目管理者联盟 【2】左美云,邝孔武 主编:《信息系统的开发与管理教程》,清华大学出版社 2001training.mypm.net 【3】萨师煊,王珊 著 :《数据库系统概论》第三版,高等教育出版社 2001bbs.mypm.net 【4】小塞谬尔 J 惠特尔 等著,林树岚等译:《项目管理实践》 电子工业出版社 2002项目管理者联盟 【5】(美)凯西 施瓦尔贝 著,王金玉 等 译:《IT项目管理》 机械工业出版社 2002项目管理者联盟 【6】周果宏,罗述谦,罗起 编著:《Deiphi程序设计》清华大学出版社 2001项目管理者联盟 【7】(美)Marco Cantu 著,王辉 等 译:《Deiphi6从入门到精通》 电子工业出版社 2002项目管理者联盟 【8】肖建,杨新臣 等 编著:《Deiphi7编程基础》 清华大学出版社 2003 项目管理者联盟
|