博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VARCHART XGantt系列教程:如何用值来标记曲线
阅读量:6207 次
发布时间:2019-06-21

本文共 2568 字,大约阅读时间需要 8 分钟。

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

如果您使用Gantt Charts来进行资源控制,那么您通常会对当前情况有一个清晰和精确的概述感兴趣。特别是在某些事情似乎不怎么明了的情况下,您需要立即看到问题。介于此本文旨在讲述如何使用值来标记曲线,供大家学习讨论。

详细的规划不仅需要用直方图来表示资源,而且还需要显示资源利用率的准确值,以便能够快速识别资源瓶颈。

使用的一个生动的例子是精确控制机器部件数量的生产计划,由于一个或多个直方图的高度复杂性,这些直方图具有许多值的堆叠曲线,在许多情况下会导致空间不足,从而妨碍标签的可读性,因此不能在其中标记曲线。如果应用程序中只显示少量且很少更改的值,从而在x方向上为标签留出足够的空间,则可以通过放置在直方图下方的第二个VARCHART XGantt实例获得曲线标签。

在我们的示例中,甘特图是由VARCHART XGantt ActiveX创建的。机器的容量由部件的数量来衡量,与计划的部件数量一起显示(第一个数字一般表示利用率,第二个数字表示资源的最大可用性):

【直方图中生产计划显示利用率】

直方图显示了资源调度器在8点时计算出的20个片和9点时计算出的10个片的分布,因此,9点10件的可用容量很容易识别。

需要注意以下四点:

  1. 必须禁用上部XGantt的水平滚动条,以使两个XGantt实体看起来像一个图。
  2. 缩放系数、表宽、水平滚动偏移量和图的单位宽度的设置必须相同。
  3. XGantt在设计时要定位数字,需要在第二步中创建一个用于包含标签的层。
  4. 在运行时,每个标签创建一个组和一个节点,标签被放置在要标记的曲线的那个周期。

当组布局切换到“All nodes in one row”“Nodes optimized”时,标签将在正确的位置绘制。使用以下代码创建标签:

Dim currentDate As Date Dim histogram As VcHistogram Dim capacityCurve As VcCurve Dim loadCurve As VcCurve Dim leftDate As Date Dim rightDate As Date Dim leftValue1 As Long Dim leftValue2 As Long Dim rightValue As Long Dim cal As VcCalendar 'Reset second XGantt (only necessary if switching between several curves ispossible) VcGantt2.Reset vcRemoveNodes 'Calculate necessary objects Set cal = VcGantt1.CalendarCollection.Active Set histogram = VcGantt1.HistogramCollection.HistogramByName _ (histogramName) Set capacityCurve = histogram.CurveCollection.CurveByName(histogramName) Set loadCurve = histogram.CurveCollection.CurveByName _ ("Load_" + histogramName) 'Create nodes in a loop over the time displayedcurrentDate = VcGantt1.TimeScaleStart Do While currentDate < VcGantt2.TimeScaleEnd 'Read curves Call capacityCurve.GetValues(d, leftDate, leftValue1, _ rightDate, rightValue) Call loadCurve.GetValues(d, leftDate, leftValue2, _ rightDate, rightValue) 'create node for second XGantt with Node-ID, 2 values, group name = 'histogram name, start and end date VcGantt2.InsertNodeRecord CStr(d) + ";" + _ CStr(leftValue2) + "/" + _CStr(leftValue2) + "/" + _histogramName + ";" + _normDat(d) + ";" + _normDat(DateAdd("h", 1, d)) 'calculate next start date (at the end of a working day moving forward to 'the beginning of the next working day) currentDate = cal.AddDuration(currentDate, 1) If Hour(currentDate) = 17 Then currentDate = cal.AddDuration(cal.AddDuration(currentDate, 1), -1) End If Loop 'import all nodes to the Gantt diagram VcGantt2.EndLoading 'Perform grouping again VcGantt2.GroupNodes True复制代码

更多VARCHART XGantt系列教程将在后续更新,敬请关注~

查看转载原文请点击。

你可能感兴趣的文章
Introduce
查看>>
分析云计算对企业IT架构潜在影响
查看>>
山西省医院协会牵手科大讯飞 依托省人民医院推进 “ AI + 医疗”落地
查看>>
如何用 MOOC 组合掌握机器学习?
查看>>
云计算和外包数据安全分析及建议
查看>>
Hadoop命令手册
查看>>
Salesforce Einstein承诺提供“开箱即用”的人工智能应用程序
查看>>
企业如何应对云计算的法律风险
查看>>
《程序化广告实战》一 第1章 程序化广告的前世今生
查看>>
摩尔定律堪称不死神话: IBM开发5纳米芯片
查看>>
友友云产品发布会在京举行
查看>>
Gartner:如何定位CDO首席数据官
查看>>
蓝代斯克助力企业决胜现代化IT
查看>>
5款应用优化Outlook体验感
查看>>
H3C许立宪:金融跨界成必然趋势
查看>>
Arkeia发布业界首个用于备份的虚拟设备
查看>>
机器学习的入门“秘籍”
查看>>
Struts2漏洞爆发 知道创宇云安全已拦截近万攻击样本
查看>>
关于5G的10个问答 让我们告别盲人摸象
查看>>
中兴通讯徐明:中国智慧城市应以人为核心让信息惠民
查看>>