【问题标题】:Cuba-platform : Gantt Chart segments overlap古巴平台:甘特图段重叠
【发布时间】:2020-10-14 17:45:17
【问题描述】:
我目前正在开发基于 Cuba-platform 7.2 的基于 Web 的项目管理应用程序。
我想添加一个甘特视图,所以我得到了从 amCharts 派生的图表插件。
我面临的问题是,对于一个项目(图表的一行),从时间线的角度来看,我可以让任务重叠。结果,这些任务在甘特图中相互重叠,使其不太容易分析。
我想知道是否有办法将与一条线关联的段堆叠起来,而不是让它们全部对齐和重叠?
非常感谢您的帮助和时间!
【问题讨论】:
标签:
java
xml
amcharts
cuba-platform
【解决方案1】:
如果不检查图表配置和数据样本,很难提供解决方案,所以我可以建议两个选项:
- 将
startDate 和endDate 替换为duration。第一段可以有一个可选的start 值。在这种情况下,段将相互堆叠,例如:
- 由于您不需要在时间轴上反映真实的段位置,您可以将 甘特图 替换为 堆叠条形图,例如可以得到如下结果:
【解决方案2】:
首先非常感谢您的宝贵时间!
我将尝试更清楚地描述我的实体,以及我想要得到的结果。
我有几个“项目”实体,每个实体都有一个“任务”实体列表。每个“任务”实体都有一个 startDate 和一个 endDate。
为了填充我的甘特图,dataContainer 是所有“项目”实体的集合,我使用每个“项目”的“任务”实体集作为segmentsField。
问题是“项目”的“任务”实体可能从时间线的角度相互重叠(例如任务 1 将从 3 月运行到 7 月,任务 2 从 5 月运行到 10 月)。
所以现在,我得到的结果如下所示:
我现在拥有的:https://i.stack.imgur.com/px1FZ.png
我想要什么:https://i.stack.imgur.com/DEt7P.png
当然,如果我有多个项目,每个项目都会遵循相同的显示。
你觉得有可能吗?
作为替代解决方案,我正在考虑将甘特图链接到所有“任务”实体的 DataContainer,但我没有找到如何将根实体定义为它自己的“segmentField”。也许这张图表的用法太“异国情调”了……
【讨论】:
-
不幸的是,重叠段是 amcharts 处理您遇到的情况的方式。根据此 amcharts sample,解决方法可能是使用具有不同颜色的半透明段。
【解决方案3】:
感谢 glebfox 的回答。
作为一种解决方案,我最终决定按项目创建一个甘特图,并且对于每一个,我使用一个 Service 来提供一个包含一个列表 Task 的 Transcient 实体列表,其中只有一个段(1 个按任务),以便每个都在一行。