提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
FlexGantt是一种先进的甘特图Swing用户界面组件,它允许用户与项目计划和调度结果形成互动。应用程序使用FlexGantt可以自定义甘特图组件。FlexGantt 使用一个很高的抽象层次,能适用于多样的、通常是不同的域,例如 ERP 系统、生产计划和调度程序、制造执行系统或项目公文管理程序。这些使得 FlexGantt 能从其他有局限性的项目计划(资源、人、任务)甘特图库中脱颖而出。
FlexGantt is the most advanced Gantt charting solution currently available for Java. FlexGantt uses a very high abstraction level, which allows it to be applied in various and often very different domains such as ERP systems, production planning and scheduling applications, manufacturing execution systems or project portfolio managment applications. This is what makes FlexGantt stand out from other Gantt charting libraries, which are usually limited to project planning (resources, people, tasks).
声明:本产品中文介绍为慧都网版权所有,未经慧都公司书面许可,严禁拷贝、转载!
* 关于本产品的分类与介绍仅供参考,精准产品资料以官网介绍为准,如需购买请先行测试。
应用于磁电/装备制造/食品工业/建筑等行业
分屏/双甘特图:
几乎所有计划和调度程序都需要在水平卷动时保持两个不同模型或同一模型内两个不同部分的数据一致。FlexGantt 框架包括一个双甘特图可以实现上述目标。用户可以在任何时间分割/取消分割甘特图。水平分割线能用于调整上下两部分大小。时间线对象可以从一个拖至另一个。
模型视图控制器:
FlexGantt 遵从与 Swing 相同 MVC 方法。许多不同的模型用于各种各样的用途。一个日历模型跟踪假日和周末。一个页面模型支持使用者加载不同的计划范围,一个书签模型存储了应用程序和用户自定义书签。然而,首要的模型是甘特图,它为甘特图组件提供数据。它是树状图模型的延伸,因此它能在甘特图的左手边填上数据(左手边是树状图)。它同样返回成为时间线的对象显示在右手边时间线的下方。时间线对象代表活动、工作、事件、重要事件,甚至任何可以放在时间线上的事情,因为它可以被连接到时间点或时间区。下面的图片显示了甘特图模型的结构。
懒加载:
根据应用程序类型,需要显示的数据量可能十分庞大。在这种情况下,只有使用“懒载入”方法,用户界面才可以迅速和有较快响应。“懒载入”意味着数据只在用户真正需要时,从服务器(或数据库)传到客户端。FlexGantt 从最底层设计支持懒载入。例如:实现树表展开监听界面的对象将在树展开前收到一个事件,这样,父节点的子节点可以被载入。页面模型是另一个支持懒载入架构的例子。
页面:
如果一个调度程序需要处理大量的时间线对象,分割时间线到若干页/时间跨度是有必要的。这一方式将数据分为小块,甘特表可以更加容易地处理。页模型处理单独的页面。可以在当前页、前一页、后一页、彩票走势图和尾页查询。用户界面提供一个控件用于选择单独页面。
可自定义时间线:
每个程序有着对时间线的自定义的特殊要求。一些需要在日期旁显示周数,另一些则需要显示天数(例如“第241天”)。时间线可以灵活设计。它的模型可以被替换,它的显示可以被替换,甚至整个时间线可以被替换为自定义子类。
层:
FlexGantt 使用独特的层方法,该方法因在图片和绘图程序中的使用而闻名。每个甘特图由两个层集合组成,系统层集合提供核心功能(例如绘制垂直网格线),另一个层集合绘制时间线对象(活动、事件、重要事件)。下面的图片显示了层栈。程序可以增加任意多的时间线对象层,可以容易地一次完成分组对象、显示/隐藏的功能。层同样支持透明化,因此层叠时间线对象能够容易地被识别。
拖放网格:
时间线对象可以被水平拖动、缩放和垂直拖动。一个可见网格能被拖放操作激活,所以时间线对象可以更容易地被放置在特定时间。网格由策略控制,意味着任何种类的网格都可以被完成。可以设置默认网格策略使得时间线对象可以吸附到从千年、百年、十年、年、月、星期、日以至于毫秒的任何时间。
策略控制行为:
调度程序在显示信息、编辑数据、响应用户交互方面有着千差万别。FlexGantt 的策略框架能够根据这些不同而被用于设定相适应的甘特图。策略是小的决定者,通常不包含很多的代码。它们同样是无状态的。在许多情况下,它们仅仅返回标记(booleans)和命令。标记用作控制程序流,而命令被用作实现实际的数据修改(通过一个包含撤销和恢复的命令栈)。
弹出/注释:
时间线下方的栏是显示一个事件的好区域,但是由于空间限制,它只能显示有限的信息。当鼠标指针悬停在这一栏上,显示弹出/注释是一个很好的特性,这样就能显示足够多的信息,提供给计划者用作制订调度决定。FlexGantt 的弹出可以与 Swing 组件一样被自定义。不同的显示可以被映射到不同种类的弹出对象。弹出对象由特定的弹出策略导出。下面的图片显示了默认的弹出显示,它显示了序列化形式的弹出对象。
可变行高:
FlexGantt 图的每行可以有自己的高度。这样特性在树表节点代表不同类型的对象或一个量与每个节点相关联是十分有用。在此情况下,行高可以反映这样量(例如一个资源的容量)。
多行排序:
甘特图左手边的树表支持多行排序,意味着用户可以同时选择多个树表列,表中数据将基于此选择排列。 FlexGantt 使用快速排序算法进行排序,支持升/降序排列。
日历模型:
日历模型提供甘特图中有关周末、假日、或任何特殊时间范围的数据。日历模型的入口显示在整个层容器的高度(右手边)。最显著的使用日历模型的例子是对周末的定义。周末的背景将会以灰色显示。
自动卷动:
如果 FlexGantt 图频繁更新它的“现在时间/系统时间”,有时使程序注意这样时间是有必要的。当自动卷动被激活,现在时间光标(垂直虚线)将提留在层容器的中央,即使时间流逝。当程序具有更多监视功能而不是交互调度功能时,这是一个非常有用的特性。
书签:
用户日益习惯于书签的概念。FlexGantt 同样支持它们,而且用户可以使用它们来快速调整时间线设置,这样一个特定的时间点、间隔和范围会被显示在甘特图上。定义过的书签被列在菜单的导航控件中。 当用户点击菜单按钮时,如果控制键被按下,将会显示被标签的时间间隔的小预览图片
命令框架:
FlexGantt 提供一个小但强大的命令框架。它被用来支持编辑操作的撤销和恢复。命令框架包含命令、命令栈、命令栈监听器和进度监视器。命令通过甘特表被执行、撤销和恢 复,甘特表内部使用一个可置换的命令栈。为了保证用户界面的相应,命令在自己的线程中进行。命令栈事件在命令执行时被提交。进度监视器用来显示命令的进 度。子进度监视器用来监视包含其他许多命令的混合命令。一旦一个命令结束执行,它将被加入到命令栈的撤销列表中。当一个命令被执行而无法撤销时,这一列表 将被清空。命令框架使用一个高级抽象层次,这一已存在的命令架构(传统代码)可以被重用。
打印:
甘特表显示的计划是一份文档,而任何文档都应该能打印。内建的打印支持使得用户指定需要打印的时间范围和间隔(见下图)。结果表可以被打印成具有多页的宽度和高度。
关系:
时间线对象之间具有某种关系是很普遍的。例如项目计划软件通常在它们之间定义约束。一些约束的例子:“在……之后开始”,“在……之前完成”,“同时开 始”,“同时完成”。FlexGantt 通过绘制它们之间的线条来显示关系。每个程序有自己的显示方式(不同的约束有不同的颜色和/或不同的线风格)。通过插入自定义关系显示,可以实现任何种类 的关系显示
可插入显示和编辑器:
Swing 定义了许多显示和编辑类用作它的用户界面组件,例如树、表格或列表。FlexGantt 与之相同,定义了树表单元、列头、弹出、日期线模型、时间线对象、事件线对象的显示。时间线对象编辑器在甘特表左手边的透明窗口里显示。
多线:
多线特性使得甘特表在同一行上下显示时间对象。这样原可能互相重叠的时间线对象可以正常显示。
Split Screen / Dual Gantt Chart
A feature required by almost any planning and scheduling application is the ability to keep the data of two different models or two different sections of the same model in synch while scrolling horizontally. The FlexGantt framework includes a Dual Gantt Chart that is capable of doing exactly that. The user can split / unsplit the Gantt chart at any time. A horizontal divider can be used to resize the upper and lower part. Timeline objects can be dragged from one to another.
Relationships
It is quite common that timeline objects have some kind of relationship with each other. Project planning software for example often defines constraints between them. Some examples for constraints are: 'start after', 'finish before', 'same start', 'same end'. FlexGantt can visualize them by drawing lines betwen them. Each application has its own way of visualizing them (different colors and / or line styles for different constraints). By plugging in a custom relationship renderer it is possible to implement any kind of relationship rendering.
Lazy loading
Depending on the application type the volume of data that needs visualization can be rather massiv. In these situations a user interface can only be fast and responsive if it uses a 'lazy loading' approach, which means that data will only be transferred from the server (or database) to the client when the user actually requests it. FlexGantt has been designed from the ground-up to support lazy loading. Example: objects that implement the tree table expansion listener interface will receive an event before the tree expands so that the child nodes of the expanding parent node can be loaded. The paging model is another example for infrastructure that supports lazy loading.
Model-View-Controller (MVC)
FlexGantt follows the same MVC approach that Swing is using. Several different models are used for various purposes. A calendar model keeps track of holidays and weekends. A paging model supports the user in loading different planning horizons, a bookmark model stores the application- and user-defined bookmarks. The primary model, however, the one that feeds the Gantt chart component with data is the Gantt chart model. It is an extension of a tree table model so that it can populate the left-hand side of the Gantt chart with data (the left-hand side is a tree table). It also returns so-called timeline objects that are displayed on the right-hand side underneath the timeline. Timeline objects represent activities, tasks, events, milestones, pretty much anything that can be placed on a timeline because it can be associated with a time point or a time span. The following graphic depicts the structure of a Gantt chat model.
Bookmarks
Users have become more and more used to the concept of bookmarks. FlexGantt supports them as well and users can use them to quickly adjust the timeline settings, so that a specific time point, granularity and horizon will be shown in the Gantt chart. The defined bookmarks are listed in a menu in the naviagtion controls. Small preview images of the bookmarked time span will be shown if the control key is down when the user clicked on the menu button.
Layers
FlexGantt uses a very unique layering approach that is known from graphics and mapping applications. Each Gantt chart consists of a set of system layers, which provide the core functionality (e.g. a drawing vertical grid lines) and a set of layers dedicated to rendering timeline objects (activities, events, milestones, ...). The picture below depicts the layer stack. Applications can add as many timeline object layers as they like, allowing them to easily group objects and show or hide them all at once. Layers also support transparency so that overlapping timeline objects can be easily identified.
Drag & Drop Grid
Timeline objects can be dragged and resized horizontally and dragged vertically. An invisible grid can be enabled during these drag & drop operations so that a timeline object can be more easily placed at a specific time. The grid gets controlled by a policy, which means that any kind of grid can be implemented. The default grid policy can be configured to make timeline objects snap to anything from millenium, centuries, decades, years, months, weeks, days, all the way to milliseconds.
Policy controlled behaviour
Scheduling applications vary too a large extent in the way they visualize information, edit data, and respond to user interaction. FlexGantt's policy framework can be used to tailor the Gantt charts to these variations. Policies are small little decision makers and usually do not contain a lot of code. They are also stateless. In many cases they return flags (booleans) and commands only. The flags are used to control the program flow, while the commands are used to perform the actual modification of data (via a command stack with undo and redo capabilities).
Pluggable Renderers & Editors
Swing defines several renderer and editor classes that are used for its UI components such as tree, table or list. FlexGantt does the same and defines renderers for tree table cells, column headers, popups, dateline models, timeline objects, eventline objects. Editors are available for tree table cells and timeline objects. A timeline object editor gets displayed in a transparent window within the right-hand side of the Gantt chart (in-place editing, see picture below)
Paging
If a scheduling application needs to deal with a large amount of timeline objects then it often makes sense to divide the timeline horizon into several pages / time spans. This way the data gets broken into smaller chunks that the Gantt chart can deal with more easily. The paging model manages the individual pages. It can be queried for the current page, the previous page, the next page, the first page, and the last page. The user interface provides a control that can be used to select individual pages.
Popups / Annotations
A bar underneath a timeline is a nice representation for an activity but it can only carry a limited number of information due to space restrictions. Popups / annotations that show up when the mouse cursor hovers over such a bar is a nice feature that can display a wealth of additional information that the planner might need to make a scheduling decision. FlexGantt's popups can be customized in the same way that any Swing component can be customized. Different renderers can be mapped to different types of popup objects. The popup objects are looked up from a specialized popup policy. The image below shows the default popup renderer that displays popup objects in its serialized form.
Printing
A plan shown in a Gantt chart is a document and every document needs to be printable. The built-in printing support for FlexGantt lets the user specify a time span and a granularity to be printed (see picture below). The resulting chart can be printed on several pages wide and high.
Command framework
FlexGantt provides a small but powerful command framework. It is used to support editing operations that can be undone and redone. The framework consists of commands, a command stack, a command stack listener and a progress monitor. Commands are executed, undone and redone via the Gantt chart, which internally uses a replaceable command stack. Commands are executed in their own thread in order to keep the user interface responsive. Command stack events are issued during the execution of the command. Progress monitors are used to display the progress made by a command. Sub-progress monitors are used for compound commands that consist of several other commands. Once a command has finished execution it will be added to the command stack‘s list of undoable commands. This list will be cleared when a command gets executed that can not be undone. The command framework uses a high level of abstraction so that an already existing command infrastructure (legacy code) can be reused.
Multiline
The multiline feature enables a Gantt chart to display timeline objects within the same row but above and below each other. This way timeline objects that would otherwise overlap each other can be displayed without problems.
Variable row heights
Each row in a FlexGantt chart can have its own height. This feature is very useful when the nodes in the tree table represent different types of objects or if a quantity is associted with each node. In this case the row height can reflect this quantity (e.g. the capacity of a resource).
Multi-column sorting
The tree table on the left-hand side of the Gantt chart supports multi-column sorting, which means that the user can select several tree table columns at the same time and the data in the table will be sorted based on this selection. FlexGantt uses a quicksort algorithm for fast sorting and supports ascending and descending sorting.
Calendar Model
The calendar model provides data for the Gantt chart related to weekends, holidays, or any other kind of special time span. Entries in the calendar model are rendered across the entire height of the layer container (right-hand side). The most prominent example for the use of the calendar model is the definition of those days that are considered weekend. The background of weekend days will grayed out.
Autoscrolling
If a FlexGantt chart updates its 'time now / system time' frequently then it sometimes makes sense to make the application focus on this time. When autoscrolling is enabled then the time now cursor (a vertical dashed line) will remain in the center of the layer container even when time progresses. This is a very useful feature when an application has more of a monitoring function then an interactive scheduling function.
Customizable Tmeline
Each application has its own requirements for the timeline. Some require the week of the year to be shown next to the date, others want to show the number of the day in the year (for example 'day 241'). The timeline has been designed with flexibility in mind. Its model can be replaced, its renderers can be replaced, even the entire timeline can be substituted with a custom subclass.
更新时间:2020-05-12 14:24:35.000 | 录入时间:2007-08-08 13:50:37.000 | 责任编辑:
为开发高级图形的动态界面而设计的框架,是完全动画的图形对象。智能制造推荐产品,帮助企业领跑工业4.0。
DHTMLX 超值正版套包DHTMLX旗下Diagram、Sute、Pivot、Gantt等插件正版授权合集
JointJSJointJS 是一款基于 JavaScript 的开源库,用于创建基于 HTML5 的交互式图表
SciChart WPF Charts一款实时、高性能的WPF图表库,专为金融、医疗和工程应用而设计。
SciChart JavaScript Charts一款用于Web的高性能JavaScript图表和图形库。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢