当前位置:   article > 正文

DevExpress WinForms Gantt组件——轻松可视化项目时间表内的时间轴_devexpress granttcontrol 排程

devexpress granttcontrol 排程

DevExpress WinForms的Gantt组件在v23.1中附带了一个新的时间轴UI元素,Gantt(甘特图)控件本身允许您计划/管理项目,而时间轴显示单个任务的开始和截止日期,并提供项目进度的鸟瞰图。

DevExpress WinForms Gantt组件图集

DevExpress WinForms 拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

获取DevExpress v23.1正式版下载(Q技术交流:523159565)

Timeline(时间轴)UI

时间轴可以显示多个带有任务/里程碑、今日指示器和日期范围选择器的时间轴条。

DevExpress WinForms Gantt组件图集

时间轴的上下文菜单允许用户添加/删除时间轴条,从时间轴中删除任务/里程碑,或快速导航到甘特图树和图表中的任务。

DevExpress WinForms Gantt组件图集

显示时间轴

Gantt(甘特图)控件可以在顶部或底部显示时间轴。

DevExpress WinForms Gantt组件图集

  1. using DevExpress.XtraGantt;
  2. // Displays a timeline at the top of the Gantt control.
  3. ganttControl1.OptionsTimeline.TimelinePosition = TimelinePosition.Top;
用户体验

最终用户的选项包括:

  • 添加/删除任务和里程碑到/从时间轴
  • 添加/删除时间轴
  • 选择多个任务(单击一个任务并按住Ctrl键选择该任务)
  • 跳转到任务
  • 平移和缩放时间轴规模
  • 选择时间范围
  • 调整时间轴
时间轴自定义设置(API)

使用GanttControl.OptionsTimeline属性来访问和自定义时间轴设置:

  • TimelinePosition — 指定时间轴的可见性和位置。
  • AllowResize — 指定时间轴的高度是否可以由用户或代码修改。
  • TimelineHeight — 指定时间轴高度(以像素为单位)。
  • ShowTodayIndicator — 是否显示今日指标。
  • MinUnit/MaxUnit — 指定最小/最大时间间隔。

您可以根据特定条件修改单个任务的标题/详细信息/描述,要应用修改,请处理CustomTimelineItemText事件,甘特图控件为时间轴中显示的每个任务触发此事件。

我们还实现了Custom Draw APIs(自定义绘制API),方便您可以根据需要绘制时间轴条和任务,这些API包括:

  • CustomDrawTimelineBar
  • CustomDrawTimelineTask
将时间轴绑定到数据

使用以下属性将数据源中的字段映射到任务属性:

  • ChartMappings.TimelineCaption — 指定数据源中字段的名称(带有用于时间轴上的任务标题的字符串值)。
  • ChartMappings.VisibleInTimelineFieldName — 指定数据源中字段的名称(使用布尔值指定要在时间轴上显示哪些任务)。
  1. public Form1() {
  2. InitializeComponent();
  3. // Bind the Gantt control to a data source.
  4. ganttControl1.DataSource = TaskData.InitData();
  5. // Configures the Gantt control's mappings.
  6. ganttControl1.TreeListMappings.KeyFieldName = "Id";
  7. ganttControl1.TreeListMappings.ParentFieldName = "ParentId";
  8. ganttControl1.ChartMappings.StartDateFieldName = "StartDate";
  9. ganttControl1.ChartMappings.FinishDateFieldName = "EndDate";
  10. ganttControl1.ChartMappings.TimelineCaption = "TimelineCaption";
  11. // Maps the Gantt control to a field in a data source with Boolean values that
  12. // specify which tasks to display on the timeline when the application starts.
  13. ganttControl1.ChartMappings.VisibleInTimelineFieldName = "ShowInTimeline";
  14. }
  15. public class TaskData {
  16. public TaskData(int id) {
  17. this.id = id;
  18. }
  19. int id;
  20. public int Id {
  21. get { return id; }
  22. }
  23. public string TimelineCaption {
  24. get { return string.Format("Timeline Caption: {0}", Name); }
  25. }
  26. public bool ShowInTimeline { get; set; } = false;
  27. public int ParentId { get; set; }
  28. public string Name { get; set; }
  29. public DateTime StartDate { get; set; }
  30. public DateTime EndDate { get; set; }
  31. public static List<TaskData> InitData() {
  32. return new List<TaskData>() {
  33. new TaskData(0){ Name = "Task A", ParentId = 0, StartDate = new DateTime(2023, 3, 1), EndDate = new DateTime(2024, 3, 31) },
  34. new TaskData(1){ Name = "Task B", ParentId = 0, StartDate = new DateTime(2023, 3, 1), EndDate = new DateTime(2023, 7, 1), ShowInTimeline = true },
  35. new TaskData(2){ Name = "Task C", ParentId = 0, StartDate = new DateTime(2023, 7, 1), EndDate = new DateTime(2023, 11, 1) },
  36. new TaskData(3){ Name = "Task D", ParentId = 0, StartDate = new DateTime(2023, 11, 1), EndDate = new DateTime(2024, 3, 31) },
  37. };
  38. }
  39. }
所见即所得打印和导出

您可以打印/导出甘特图及其时间轴,支持的导出文件格式包括:PDF, XLS, XLSX, MHT, CSV, HTML, RTF, DOCX, TXT(或作为图像文件)。

DevExpress WinForms Gantt组件图集

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/230437
推荐阅读
相关标签
  

闽ICP备14008679号