VARCHART XGantt是一款功能强大的甘特图控件,其模块化的设计让您可以创建满足需要的应用程序。XGantt可用于.NET,ActiveX和ASP.NET应用程序,可以快速、简单地集成到您的应用程序中,帮助您识别性能瓶颈避免延迟以及高效利用资源,使复杂数据变得更加容易理解。

本文主要介绍如何在分组视图中更好地显示节点,有任何建议或提示请在下方评论区留言。


在甘特图中活动通常以组的形式展现,比如machine Gantt代表机器负载可视化,它区分机器组和各自的机器,这被称为双阶段分组。甘特图的分组可以用来表示扩张或者收缩,这取决于你想从哪个角度查看详细数据。

有一个传统甘特图控制所面临的问题:那就是通常节点只在一个组级别中显示。那么如何在甘特图组中显示节点?是在顶部折叠或是在底部展开?在下文中将详细介绍如何在组级别上可视化节点,以及基于节点的单个组的排列如何增强甘特图的信息价值。

VARCHART XGantt的位移技巧

VARCHART XGantt是一款非常灵活的.Net甘特控制工具,仅通过少量的编程就可以针对面向时间的规划数据进行几乎所有可视化需求定制。

当特定机器的甘特图启动时如果显示崩溃,下面的示例将显示机器组,而单个机器最初并没有显示,并且所有节点都显示在顶层。

当展开机器组后,可以看到第二层单独的机器。现在我们直观的将节点从机器组移动到机器上(只需撤销移动,节点就会再次出现在第一层)。

在一行中优化节点的排列

为了将节点排列在第一层和第二层,我们同时选择了VARCHART XGantt模式all nodes in one rownodes optimized选项。这样就可以实现:

  • 所有节点都显示在彼此相邻的一行中,这样可以一眼看到机器的利用率。
  • 如果节点重叠,则显示另一行,并且重叠的节点出现在新行中。

在第二层展开时更改节点排列

由于我们希望为planner提供尽可能详细的视图选项,所以我们将all nodes in one row更改为nodes in separate rows,方法是为第二个分组级别勾选相应的复选框。

在展开机器视图时,每个节点将被清晰地安排在它自己的一行中,这样规划人员就可以识别出活动的确切时间。此外活动是按开始日期排序的,因此计划人员可以很容易地立即找到下一个计划的活动

在使用VARCHART XGantt分组视图时进行节点排列

Step 1:

本例中不使用扩展数据表,在传统的数据结构中,组是根据节点的分组标准自动创建的。VARCHART XGantt属性页上的设置如下:

  1. 第一个分组级别的组名
  2. 第二个分组级别的组名
  3. 虚拟分组数据字段

如果第二个分组字段为空,例如空字符串,则VARCHART XGantt将各个节点排序到下一个最高级别的组中。不要简单地将第二层的分组名称替换为空字符串,因为这样肯定会删除该值,并且无法再分配该值。这就是为什么我们需要在需要时将空字符串或第二层的分组名称复制到其中的虚拟数据字段(最初虚拟数据字段将保持为空)。

Step 2:

接下来如果尚未指定,我们将在设置中为这两个分组级别中的每一个创建GroupLevelLayout

  • 分组方式:分组字段对应虚拟数据字段
  • 单独行中的节点:false
  • 节点优化:ture
  • 群体崩溃:ture

Step 3:

现在需要导出VARCHART XGantt配置文件,使用文本编辑器进行编辑,然后再次导入。导出的INI文件会为每个分组级别显示CreateGroupForEmptyEntry关键字,为了简化问题,对于所有现有分组级别,这个关键字设置必须从YES改为NO。并且不要忘记为以后添加的所有分组级别再次设置此键

Step 4:

我们需要检查哪个分组级别触发了修改后的事件,参考以下代码:

  • 如果第一级被折叠或展开,我们必须创建第二级,并通过foreach循环移动节点。
  • 如果第二层被折叠或展开,我们必须在单线视图或多线视图之间切换。
private void vcGantt1_VcGroupModified(object sender, VcGroupModifiedEventArgs e){vcGantt1.SuspendUpdate(true);if (e.Group.GroupingLevel == 0){if (e.Group.Collapsed){foreach (VcNode node in e.Group.NodeCollection){node.set_DataField(DT.Maindata_GroupLvl2FieldIndex, "");node.Update();e.Group.NodesOptimized = true;e.Group.Update();}}else{foreach (VcNode node in e.Group.NodeCollection){node.set_DataField(DT.Maindata_GroupLvl2FieldIndex,node.get_DataField(DT.Maindata_GroupLvl2DummyFieldIndex));node.Update();}}}
if (e.Group.GroupingLevel == 1){if (e.Group.Collapsed){e.Group.NodesArrangedInOneRow = true;e.Group.NodesOptimized = true;e.Group.Update();}else{e.Group.NodesArrangedInOneRow = false;e.Group.Update();}}vcGantt1.SuspendUpdate(false);
}

VARCHART XGantt系列教程:如何在分组视图中更好地显示节点相关推荐

  1. VARCHART XGantt系列教程:如何利用颜色来丰富甘特图智能

    VARCHART XGantt是一款功能强大的甘特图控件.其模块化的设计让您可以创建满足您和您的客户所需求的应用程序(我们领先的甘特图控件VARCHART XGantt可用于DotNET,Active ...

  2. FullCalendar在月视图中定义日程/事件显示结束时间

    目录 FullCalendar在月视图中定义日程/事件显示结束时间 配置 换行 FullCalendar在月视图中定义日程/事件显示结束时间 在默认条件下月视图中日程只显示开始时间如下图所示: 配置 ...

  3. ASP .NET Core Web MVC系列教程三:添加视图

    系列文章目录:ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序 上一个教程:ASP .NET Core Web MVC系列教程二:添加控制器 ...

  4. git回退历史版本无法上传_Git系列教程(二):版本库中添加文件、版本回退

    Git系列教程(一):简介.安装.配置我们学习了分布式和版本控制系统的概念.Git具有的8个功能以及如何在Windows上安装Git.进行相关配置并创建版本库. Git版本库中添加文件 Git 的工作 ...

  5. python系列教程_python基础学习系列教程2-进阶之路中绕不开的知识点。

    本文是在上一篇的基础上编写的,若要查看见:雨滴测试:python基础系列教程1-可能是你见过的最通俗易懂的教程​zhuanlan.zhihu.com 五. python函数 所谓的函数,就是具有特定功 ...

  6. Microsoft Excel 教程:如何在 Excel 中使用迷你图显示数据趋势?

    欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中使用迷你图显示数据趋势. 迷你图是工作表单元格中直观表示数据的微型 ...

  7. 深度学习和目标检测系列教程 15-300:在 Python 中使用 OpenCV 执行 YOLOv3 对象检测

    @Author:Runsen 上次讲了yolov3,这是使用yolov3的模型通过opencv的摄像头来执行YOLOv3 对象检测. 导入所需模块: import cv2 import numpy a ...

  8. Spring Security系列教程解决Spring Security环境中的跨域问题

    原创:千锋一一哥 前言 上一章节中,一一哥 给各位讲解了同源策略和跨域问题,以及跨域问题的解决方案,在本篇文章中,我会带大家进行代码实现,看看在Spring Security环境中如何解决跨域问题. ...

  9. 【LabVIEW懒人系列教程-小白入门】1.20LabVIEW之引用与属性节点

    上期1.19作业讲解 按照题目要求,将两个簇控件进行解绑-运算-捆绑输出即可. 今天给大家讲解labview中控制控件属性的常用方法:引用与属性节点. 引用:在Labview中常称为引用句柄,在Win ...

  10. 爆破专栏丨Spring系列教程解决Spring Security环境中的跨域问题

    上一章节中,一一哥 给各位讲解了同源策略和跨域问题,以及跨域问题的解决方案,在本篇文章中,我会带大家进行代码实现,看看在Spring Security环境中如何解决跨域问题. 一. 启用Spring ...

最新文章

  1. 轻松掌握nodeJS之npm
  2. Django从1.8升级到2.0注意事项
  3. python里面的高级特性
  4. [Link-Cut-Tree][BZOJ2002]弹飞绵羊
  5. 计算机打印病历格式要求,计算机打印病历书写要求
  6. 堪称最流行强大的免费开源PHP网站程序——WordPress中文正式版
  7. sqlnet.ora
  8. 如何重命名mysql数据库_如何重命名MySQL数据库?
  9. 基于Jenkins和Kubernetes流水线实现应用的自动发版
  10. 【技巧分享】【数据分析】数据分析模型
  11. 和平精英服务器维护多少钱,和平精英因充钱太多服务器崩溃?王小歪充52W,只用一小时...
  12. react native的WebView报错: Unable to open URL:****
  13. Origin绘图后导出图片的方法
  14. 《Filter Pruning using Hierarchical Group Sparse》ICPR2020论文详解
  15. 数据结构----栈和队列
  16. 3d云html原理,云渲染是什么原理?
  17. Linux上vim编辑器使用教程
  18. xbox one怎样设置html5,如何安装设置XBOX ONE?XBOX ONE怎么用?
  19. Robotstudio软件:机床上下料工作站机器人示教编程
  20. JDK(Java)的下载与安装

热门文章

  1. 通信原理学习笔记5-1:数字调制——脉冲成形滤波器选择(码间串扰、Nyquist准则、升余弦滚降滤波器、眼图)
  2. librdkafka 封装的C++类
  3. 浅学DSP原理及应用
  4. 数组输出c语言程序,C语言输出数组的三种方法
  5. ThingsBoard 开源技术体系总览
  6. 朗科N500S 120G开卡修复工具 SM2258XT_B16A_PKGQ1024B_FWQ0922A0
  7. SORPAS-焊接仿真模拟软件
  8. Visio应用视频教程(下)-游峰-专题视频课程
  9. 设置华表Cell插件外观时的“闪烁”问题
  10. 优炫数据库收到来自重庆市统计局的感谢信