基于PowerBuilder DataWindow的项目进度管理的设计与实现

2013-10-17 03:19杨存榜
计算机与现代化 2013年1期
关键词:控件列表界面

黄 越,游 丹,杨存榜,熊 勇

(中国工程物理研究院激光聚变研究中心,四川 绵阳 621900)

0 引言

PowerBuilder是由Sybase公司推出的一种广泛应用于C/S结构下的数据库前端开发工具,它采用面向对象的设计思想和可视化的图形界面,具有良好的开放性和操作性[1]。数据窗口是PowerBuilder的核心技术,它是一类功能十分强大的对象,通过它可以高效地对数据库中的数据进行添加、删除、修改、查询、浏览等操作,无需另外编写SQL代码。数据窗口对象在数据检索和处理方面的强大功能使得它在统计报表制作方面显示出突出的优越性[2]。

在目前众多利用PowerBuilder开发的项目信息管理系统中,项目的进度管理界面多是采用数据列表的形式,通过列表中的时间和文本数据表现项目的进展情况。这种方式便于用户对数据进行操作,却不能直观地显示项目的进度信息。不同于传统的进度管理,这里所设计的项目进度管理界面以甘特图为设计思想,利用数据窗口对象生成数据列表和图形界面,并将列表中的数据转化为图形输出,这样一方面,用户可以在数据列表中对数据进行添加、删除、修改和查询操作;另一方面,又可以通过图形界面直观地获取项目的进度信息。

1 设计思想

1.1 用户需求

项目进度管理的主要功能是帮助用户获取项目进展的关键节点信息,包括项目阶段名称、各阶段起止时间、耗时、各阶段之间的关系等。甘特图就是一种能充分表现这种功能的工具。根据用户需求,在设计的项目进度功能界面既需包含数据列表,又需包含以列表中的数据为支撑的图形界面。图1显示了项目进度管理功能的任务需求。

图1 项目进度管理功能任务需求

1.2 数据列表的设计

项目进度管理功能涉及3个表,tab_project(项目信息表)、tab_schedule(项目进度表)和tab_milestone(项目阶段表)。各表包含的字段如表1、表2、表3所示,下划线标注的字段为主键。

表1 tab_project项目信息表

表2 tab_schedule项目进度表

表3 tab_milestone项目阶段表

1.3 界面的设计

项目进度管理的功能如图2所示。为了方便浏览各类信息,同时使窗体布局简洁,采用在一个Tab控件上建立多个Tab页的方式实现进度管理的各类功能。其中,图形进度界面是设计的重点。图形进度界面以数据窗口控件为载体,通过后台计算,将数据列表中的数字信息转化为图形输出。利用甘特图为设计思想,以项目进展的各阶段为单位,以不同颜色的条形图代表不同的项目阶段,以条形图的长短代表项目阶段用时的长短,以柱状条的起止点表示该阶段在项目周期里的起止位置,点击每一阶段的条形图,可以显示该阶段具体的起止时间。

图2 项目进度管理的功能

2 实现技术

鉴于数据窗口对象与数据库良好的交互性,设计的项目进度管理的所有子功能模块都通过数据窗口实现。

2.1 录入、显示项目阶段信息

新建一个Grid风格的数据窗口dw_schedule,数据源选择 tab_schedule,将 Mst_id、Beg_time、End_time设置为可视,其余设为隐藏。添加一个Compute控件,在计算公式(Compute Expression)中输入:daysafter(Beg_time,End_time),由此得出项目各阶段耗时天数。

在Window页面中新建一个Tab控件,在tabpage_1中添加两个数据窗口控件,一个为写入窗口,一个为读出窗口。第一个数据窗口作为用户录入、保存项目阶段信息的界面,包含“新增”、“取消”和“保存”功能,当用户为项目录入某一阶段的基本信息后,系统自动将其保存至数据库相应的数据表中。第二个数据窗口用于显示项目阶段信息,设置其数据对象为dw_schedule,运行时系统将自动读取数据库,以列表的形式显示各阶段信息,添加“删除”、“刷新”两个按钮,方便用户删除某一阶段的信息并实时更新。

2.2 图形显示项目进度

为了区别各阶段的时间进度,可以为各阶段的时间进度条设置不同的颜色,通过系统函数ChooseColor()打开拾色器,选择所需的颜色并将代表颜色的数值写回到表tab_milestone的Mst_color列里。

使用数据窗口实现图形显示项目进度的功能。新建一个Grid风格的数据窗口dw_schedule_view,数据源选择 tab_project的 Jh_beg_time、Jh_end_time、Sj_beg_time、Sj_end_time,tab_schedul的 Pro_id、Mst_id、Beg_tiem、End_tiem 和 tab_milestone 的 Mst_color,将tab_schedule_Mst_id设置为可视,其余设为隐藏。设置tab_schedule_Mst_id的数据栏(Data Column)为Mst_id,显示栏(Display Column)为 Mst_name。再添加一个rectangle控件r_1作为显示项目阶段的时间进度条,放至在tab_schedule_Mst_id右侧。设置控件r_1的属性Brush color和 Pen color的公式为 tab_milestone_Mst_color。为了实现项目各阶段时间进度条在项目周期内按时间比例的显示,需要对每个项目阶段的进度条r_1的起点坐标(r_1.X)和宽度(r_1.Width)进行计算,这也是进度管理功能最重要的地方,其中,r_1.X的计算公式为式(1)和式(2)。

当项目尚未结束,项目实际结束时间没有确定,X的坐标为:

当项目已经结束,项目实际结束时间已经确定,X的坐标为:

每个项目阶段进度条的宽度与项目阶段的起始时间有关,计算r_1.Width的公式为式(3)和式(4)。

当项目尚未结束,项目实际结束时间没有确定,X的坐标为:

当项目已经结束,项目实际结束时间已经确定,X的坐标为:

公式(1)~公式(4)中,X0代表矩形控件r_1在数据窗口对象dw_schedule_view中起始点的X坐标,W0代表r_1在dw_schedule_view中的初始宽度。

在Window页面中为Tab控件添加一个新页,命名为tabpage_2,并添加一个数据窗口控件,其数据对象选择为dw_schedule_view。该窗口主要用于显示项目各阶段的用时信息,为了实现点击任一进度条可以显示项目阶段起始日期的功能,可以在数据窗口控件的clicked()函数中编辑如下代码:

2.3 显示项目耗时比例图

在Window页面中为Tab控件添加一个新页,命名为tabpage_3,并添加一个图形控件,命名为 gr_phase,该控件用于显示项目各阶段的耗时。gr_phase的标题为“时间消耗比例图”,横坐标(Category)设置为“项目阶段”,纵坐标(Value)设置为各阶段的“历时天数”。

为了实现变换图表类型的功能,需要定义一个用户类,向用户提供可选择的图表类型,将这个类命名为u_graph_gallery。在类上添加一个图形控件p_gallery,控件显示的图片是面积图、条形图、柱形图、折线图、饼图、xy散点图等众多图表类型小标志的集合,在其click()函数中进行相关定义,通过获取用户鼠标点击的x、y坐标来计算用户点击的是哪种图标类型的小标志,再利用函数of_choose_type()改变当前图标类型。

3 功能展示

根据以上的设计思想,编写代码实现了项目进度管理的功能界面,图3至图5展示了此进度管理模块的各项功能。

图3 项目阶段信息的录入及显示

图4 图形显示项目各阶段

图5 统计项目各阶段时间消耗比例图

4 结束语

本文介绍的项目进度管理功能界面已在项目管理系统中得到应用,其前台操作系统为Windows XP,开发工具为PowerBuilder 10,后台数据库为MS SQL Server 2000。实践表明,进度功能管理界面能成功地将项目阶段的数字信息转化为图形输出,提高了信息辨识度。

[1]卢守东.PowerBuilder数据库应用开发技术[M].北京:清华大学出版社,2006.

[2]余金山.PowerBuilder 10参考手册——PowerBuilder 10企业应用程序开发系列[M].北京:科学出版社,2005.

[3]江正涛.用PowerBuilder制作任务进度条[J].华南金融电脑,2004,12(9):47.

[4]王艳君,赵书良,邱志宇.基于PowerBuilder的图形化管理信息系统的研究与实现[J].计算机应用与软件,2004,21(3):40-41.

[5]王羡欠,周燕玲.PowerBuilder 9与Flash的交互编程[J].计算机与现代化,2009(9):129-131.

[6]王羡欠,周燕玲.基于PowerBuilder实现S-P表曲线自动绘制[J].计算机与现代化,2011(4):128-130.

[7]刘宇,赵嵩正,徐恒.基于Graph图形控件技术的休哈特控制图设计与实现[J].微型电脑应用,2007,23(6):51-52,55.

[8]王占清,苏茜.PowerBuilder项目开发实践[M].北京:中国铁道出版社,2003.

[9]张英杰,曹岩,曾高强.PowerBuilder应用工程软件开发指南[M].西安:西安交通大学出版社,2005.

[10]周复明,王志科,王东.PowerBuilder+Oracle项目开发实例详解[M].北京:中国铁道出版社,2004.

[11]王晟,邓远辉.PowerBuilder数据库开发经典案例解析[M].北京:清华大学出版社,2005.

[12]何旭洪,傅立宏.PowerBuilder9.0信息管理系统开发实例导航[M].北京:人民邮电出版社,2005.

[13]向隅.新编 PowerBuilder程序设计实例教程[M].北京:清华大学出版社,2009.

[14]姚策,王东.PowerBuilder程序设计技能百练[M].北京:中国铁道出版社,2004.

猜你喜欢
控件列表界面
学习运用列表法
国企党委前置研究的“四个界面”
扩列吧
关于.net控件数组的探讨
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
人机交互界面发展趋势研究
列表画树状图各有所长
手机界面中图形符号的发展趋向
ASP.NET服务器端验证控件的使用
不含3-圈的1-平面图的列表边染色与列表全染色