甘特图(Gantt)是作业排序中最常用的一种工具,最早由Henry L. Gantt于1917年提出。这种方法基于作业排序的目的,是将任务与时间联系起来的表现形式之一。有两种基本形式的甘特图:任务进度图和资源调度图。通常工业应用,如制造厂、运输业以及工程管理,均可以依靠甘特图的直观显示,进行组织运营来提高工作效率。
对于作业排序类似的问题,ILOG Gantt for .NET与同类产品相比,是一个非常理想的解决工具。它为几乎所有的显示元素提供了个性化的图形显示,全面的用户交互界面,实现了对底层大型数据对象的连接和管理,可以让.NET开发人员迅速地创建直观的、交互式的甘特图表。
1.ILOG Gantt for .NET提供的众多的功能:
· 面向任务的图表(任务进度图Gantt Chart)
任务进度图表示项目中的各阶段工作的开始时间、计划完成时间以及现在的进度。可以用来了解任务安排的情况以及任务之间的约束关系,这种类型的图表通常可用于项目的计划管理中。
· 面向资源的图表(资源调度图Schedule Chart)
资源调度图表示项目中各阶段使用资源的情况,显示给定资源的任务和操作时间的安排情况。
· 甘特树形表(Gantt Table)
以列表方式表示任务或者资源,列表中的项目可包含子任务和子资源。
· 资源负载度(Load Chart)
用于显示一系列资源随着时间使用的状况,体现某一段时间内的资源负载度。
· 日历显示(CalendarView)
在日历中显示各个任务,是Gantt for .NET 2.0新增的功能,方便直观地看到各个工作日下的任务。
2.ILOG Gantt for .NET主要有以下特征:
具有各种构件,如任务进度图(Gantt Chart)、资源调度图(Schedule Chart)等。任务进度图通常用在工程的管理项目中,每个任务与甘特图中的一行关联,显示该任务的时间段;资源调度图通常用在制造和运输项目中,资源调度图显示工作流中实施资源状况。
各大主要控件又是由小的控件组成,使用起来灵活方便,又易于扩展其功能。
在VS.NET2003设计模式下的快速开发,每个构件都提供了控件形式。安装完ILOG Gantt for .NET2.0后,进入VS.NET,就能在工具栏中看到Gantt所提供的部分控件(Win Form和Web Form两栏,后者用在ASP.NET中),如果默认不够,还可以继续添加Gantt所提供的其他控件。
Gantt for .NET是基于MVC结构的,它包含了一个抽象的数据模型和一些用于显示数据模型中数据的组件。当修改数据模型中的数据源时,显示数据的组件就会体现出来;更改显示数据的组件的内容,也能容易地更改数据模型中相应的数据。
Gantt for .NET是基于MVC模型的,但是和以前介绍过的JViews Gantt不同的是,Gantt for .NET将MVC进行了变形,将View和Control捆绑起来,使得Gantt使用起来更加容易。另外,其数据模型是开放的、可扩展的。
支持多种数据连接,使用XML或ADO.NET。
在设计模式下,简单设定属性和样式,就可以做大幅度的变化,满足多种用户需求。方便的样式设置:在设计模式中选择预定义好的AutoFormat,能够选择多种不同的样式,也可以重新定制并生成自己的样式。
已定义好的整套的事件,如放大缩小、水平时间翻卷和垂直翻卷、点选移动等,可以满足大部分使用需求,而不需要再写任何代码。
由于在一个数据集中操作大量的数据,再同时显示出来,会产生较大的延迟,因此对处理大数据集性能优化,Gantt提供了“按需导入”的机制。Gantt只把当前需要的部分数据加载到内存中并显示,这样只处理数据的相关部分,执行起来就不会受影响,数据加载的时间也不会拖延。
预先定义好的打印对话框与打印预览对话框,使得打印也变得轻松快捷。
二、 Gantt for .NET基本概念
Gantt for .NET提供了一个抽象的数据模型,能够用来适合许多情况的数据,只要这些是和时间进度有关的数据(通过XML或ADO.NET);同时,也可以对于特定的数据,自己进行扩展。以下介绍一些概念,主要是Gantt for .NET数据模型中的四个数据体,以及Gantt for .NET提供的其它一些功能术语。
1.IGanttModel是Gantt for .NET中的数据模型,它包含了以下四个数据体:
· Activities(任务)
表示某一持续时间的任务,其持续时间(duration)由开始时间(start time),和结束时间(end time)来定义。如果起始和结束时间相同,它的持续期就为零。零持续期的任务称为里程碑(milestone)。任务又可分等级,这意味着有一个父任务,它能够被分成许多子任务。一个子任务又可以是下一级任务的父任务,或它就是最底层的叶任务。
· Resource(资源)
是完成一个任务所用的方式。它可以是人力、设备、厂房等等。如同任务一样,资源也是可以分等级的,如果子资源是人,那么父资源可能就是部门了,子资源是其中独立的雇员。
· Reservation(预留)
当一个资源被分配给一个任务时,这个分配就称为预留(Reservation),表示在某个时间段为完成一个任务而需要的资源。一个任务可以有多个预留的资源,一个资源也可以被多个任务预留。
· Constraint(约束)
表示两个任务之间的一种条件,由带箭头的多点连线表示的。有以下四种约束情况:start to start, start to end,end to start, end to end。这很容易理解,就比如是一个行为必须要另一个行为的结束才能开始。
2.The services(其它功能服务):
Gantt for .NET 还为了提高开发效率,预定义了许多服务供设计开发时使用。
· Styling (样式):
不论是在设计还是运行时,仅仅只要通过改变对话框进行设置,就能够满足最终用户显示时所需的风格,在JViews中,样式是通过CSS来定义的,这在.NET中是不同的。
· Print(打印):
Gantt for .NET是基于.NET
Framework的,因此,可以调用.NET框架的打印功能,同时也可以使用Gantt for .NET中定义好的打印预览和打印对话框。便捷的设置,包含了打印所需的几乎所有功能。
· 可直接调用的修改任务与约束的对话框:
使用预先定义好的用来修改任务与约束的对话框,并不需要很多的代码,就能做到快速地修改显示视图中的数据,又由于Gantt for .NET中显示与控制的捆绑,也就能马上做到在预先定义好的对话框中所修改的数据保存到数据模型中,提高了开发效率:
· Clipboard and GanttModel UndoManager(剪贴板与撤销重做):
Gantt for .NET带来的剪贴板与撤销重做,可以在开发时对Gantt图中的各种数据直接进行剪贴和撤消重做操作。
(未完,下期将继续介绍Gantt for .NET的一般框架和如何使用它进行设计开发。)郭健
图1 不同的风格样式
图2 可直接调用的修改样式的对话框
图3 可直接调用的修改任务的对话框
对于作业排序类似的问题,ILOG Gantt for .NET与同类产品相比,是一个非常理想的解决工具。它为几乎所有的显示元素提供了个性化的图形显示,全面的用户交互界面,实现了对底层大型数据对象的连接和管理,可以让.NET开发人员迅速地创建直观的、交互式的甘特图表。
1.ILOG Gantt for .NET提供的众多的功能:
· 面向任务的图表(任务进度图Gantt Chart)
任务进度图表示项目中的各阶段工作的开始时间、计划完成时间以及现在的进度。可以用来了解任务安排的情况以及任务之间的约束关系,这种类型的图表通常可用于项目的计划管理中。
· 面向资源的图表(资源调度图Schedule Chart)
资源调度图表示项目中各阶段使用资源的情况,显示给定资源的任务和操作时间的安排情况。
· 甘特树形表(Gantt Table)
以列表方式表示任务或者资源,列表中的项目可包含子任务和子资源。
· 资源负载度(Load Chart)
用于显示一系列资源随着时间使用的状况,体现某一段时间内的资源负载度。
· 日历显示(CalendarView)
在日历中显示各个任务,是Gantt for .NET 2.0新增的功能,方便直观地看到各个工作日下的任务。
2.ILOG Gantt for .NET主要有以下特征:
具有各种构件,如任务进度图(Gantt Chart)、资源调度图(Schedule Chart)等。任务进度图通常用在工程的管理项目中,每个任务与甘特图中的一行关联,显示该任务的时间段;资源调度图通常用在制造和运输项目中,资源调度图显示工作流中实施资源状况。
各大主要控件又是由小的控件组成,使用起来灵活方便,又易于扩展其功能。
在VS.NET2003设计模式下的快速开发,每个构件都提供了控件形式。安装完ILOG Gantt for .NET2.0后,进入VS.NET,就能在工具栏中看到Gantt所提供的部分控件(Win Form和Web Form两栏,后者用在ASP.NET中),如果默认不够,还可以继续添加Gantt所提供的其他控件。
Gantt for .NET是基于MVC结构的,它包含了一个抽象的数据模型和一些用于显示数据模型中数据的组件。当修改数据模型中的数据源时,显示数据的组件就会体现出来;更改显示数据的组件的内容,也能容易地更改数据模型中相应的数据。
Gantt for .NET是基于MVC模型的,但是和以前介绍过的JViews Gantt不同的是,Gantt for .NET将MVC进行了变形,将View和Control捆绑起来,使得Gantt使用起来更加容易。另外,其数据模型是开放的、可扩展的。
支持多种数据连接,使用XML或ADO.NET。
在设计模式下,简单设定属性和样式,就可以做大幅度的变化,满足多种用户需求。方便的样式设置:在设计模式中选择预定义好的AutoFormat,能够选择多种不同的样式,也可以重新定制并生成自己的样式。
已定义好的整套的事件,如放大缩小、水平时间翻卷和垂直翻卷、点选移动等,可以满足大部分使用需求,而不需要再写任何代码。
由于在一个数据集中操作大量的数据,再同时显示出来,会产生较大的延迟,因此对处理大数据集性能优化,Gantt提供了“按需导入”的机制。Gantt只把当前需要的部分数据加载到内存中并显示,这样只处理数据的相关部分,执行起来就不会受影响,数据加载的时间也不会拖延。
预先定义好的打印对话框与打印预览对话框,使得打印也变得轻松快捷。
二、 Gantt for .NET基本概念
Gantt for .NET提供了一个抽象的数据模型,能够用来适合许多情况的数据,只要这些是和时间进度有关的数据(通过XML或ADO.NET);同时,也可以对于特定的数据,自己进行扩展。以下介绍一些概念,主要是Gantt for .NET数据模型中的四个数据体,以及Gantt for .NET提供的其它一些功能术语。
1.IGanttModel是Gantt for .NET中的数据模型,它包含了以下四个数据体:
· Activities(任务)
表示某一持续时间的任务,其持续时间(duration)由开始时间(start time),和结束时间(end time)来定义。如果起始和结束时间相同,它的持续期就为零。零持续期的任务称为里程碑(milestone)。任务又可分等级,这意味着有一个父任务,它能够被分成许多子任务。一个子任务又可以是下一级任务的父任务,或它就是最底层的叶任务。
· Resource(资源)
是完成一个任务所用的方式。它可以是人力、设备、厂房等等。如同任务一样,资源也是可以分等级的,如果子资源是人,那么父资源可能就是部门了,子资源是其中独立的雇员。
· Reservation(预留)
当一个资源被分配给一个任务时,这个分配就称为预留(Reservation),表示在某个时间段为完成一个任务而需要的资源。一个任务可以有多个预留的资源,一个资源也可以被多个任务预留。
· Constraint(约束)
表示两个任务之间的一种条件,由带箭头的多点连线表示的。有以下四种约束情况:start to start, start to end,end to start, end to end。这很容易理解,就比如是一个行为必须要另一个行为的结束才能开始。
2.The services(其它功能服务):
Gantt for .NET 还为了提高开发效率,预定义了许多服务供设计开发时使用。
· Styling (样式):
不论是在设计还是运行时,仅仅只要通过改变对话框进行设置,就能够满足最终用户显示时所需的风格,在JViews中,样式是通过CSS来定义的,这在.NET中是不同的。
· Print(打印):
Gantt for .NET是基于.NET
Framework的,因此,可以调用.NET框架的打印功能,同时也可以使用Gantt for .NET中定义好的打印预览和打印对话框。便捷的设置,包含了打印所需的几乎所有功能。
· 可直接调用的修改任务与约束的对话框:
使用预先定义好的用来修改任务与约束的对话框,并不需要很多的代码,就能做到快速地修改显示视图中的数据,又由于Gantt for .NET中显示与控制的捆绑,也就能马上做到在预先定义好的对话框中所修改的数据保存到数据模型中,提高了开发效率:
· Clipboard and GanttModel UndoManager(剪贴板与撤销重做):
Gantt for .NET带来的剪贴板与撤销重做,可以在开发时对Gantt图中的各种数据直接进行剪贴和撤消重做操作。
(未完,下期将继续介绍Gantt for .NET的一般框架和如何使用它进行设计开发。)郭健
图1 不同的风格样式
图2 可直接调用的修改样式的对话框
图3 可直接调用的修改任务的对话框