提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2023-10-16 10:38:49.800|阅读 105 次
概述:本文将为大家介绍甘特图组件DHTMLX Gantt在Web项目中使用工作日历功能的有趣示例,欢迎下载最新版组件体验~
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
如果没有有效的时间管理工具,如工作时间日历,很难想象一个项目如何成功运转。这就是为什么我们的开发团队非常重视项目管理,并提供了多种选择来安排DHTMLX Gantt的工作时间。使用DHTMLX Gantt这个JavaScript库,您可以创建一个强大的甘特图,并用一个或多个工作时间日历来补充它。
在本文中,我们将回顾如何在Web项目中使用DHTMLX Gantt工作日历功能的有趣示例。在上文中我们主要为大家介绍了DHTMLX Gantt中工作日历背后的关键概念(点击这里回顾>>),本文将继续介绍如何设置工作时间日历的用例。
现在我们继续在实际场景中使用DHTMLX Gantt的工作时间日历功能的实际示例。
首先,考虑如何在DHTMLX Gantt中生成自定义日历,您可以使用addCalendar方法:
gantt.addCalendar({ id:"custom", // optional worktime: { hours: ["8:00-17:00"], days: [ 1, 1, 1, 1, 1, 1 ,1] } });
之后,您可以像使用全局日历一样为该日历设置自定义假日:
const calendar = gantt.getCalendar("custom"); calendar.setWorkTime({ date:new Date(2021,8,1), hours:false });
这样的日历可以分配给任何任务:
{ "id":1, "calendar_id":"custom", "text":"Task #1", "start_date":"02-04-2019", "duration":"8", "parent":"1" }
或资源:
gantt.config.resource_calendars = { //[resourceId]: calendarId 1: "custom" };
自定义日历可以从现有日历中获取设置,您可以将现有日历传递给gantt.getCalendar方法,该方法将创建您已经拥有的日历的精确副本。
之后,您可以用自己喜欢的方式自定义新的日历:
const calendarId = gantt.addCalendar(gantt.getCalendar("global")); const calendar = gantt.getCalendar(calendarId); calendar.setWorkTime({ date:new Date(2021,8,1), hours:false });
最后,您可以使用合并函数的gantt.mergeCalendars方法将多个日历合并为一个日历。
const johnCalendarId = gantt.addCalendar({ worktime: { hours: ["7:00-11:00", "12:00-16:00"], days: [1, 1, 1, 1, 1, 0, 0] } }); const mikeCalendarId = gantt.addCalendar({ worktime: { hours: ["8:00-12:00", "13:00-17:00"], days: [0, 1, 1, 1, 1, 1, 0] } }); // get common work times of both: const joinedCalendar = gantt.mergeCalendars([ gantt.getCalendar(mikeCalendarId), gantt.getCalendar(johnCalendarId) ]); // the result is equivalent to the following: // worktime: { // hours: ["8:00-11:00", "13:00-16:00"], // days: [0, 1, 1, 1, 1, 0, 0] // }
这个方法是在dynamic_resource_calendar配置中使用的,允许您创建合并多个已分配资源日历设置的日历,来显示所有已分配资源何时同时可用。
gant.mergecalendars方法也可用于管理自定义日历的周末/假日,您可以创建一个包含假日和休息日的日历,并将其集成到您创建的任何工作时间日历中。
在下面的示例中,您可以看到基于全局日历和另一个自定义日历的自定义工作日历。默认情况下应用于所有任务的全局日历设置不会更改。全局日历与自定义日历合并,自定义日历的设置取自包含非工作日的数组,由此产生的自定义日历继承两个日历的工作时间设置(即所有非工作日)。
有时可能有必要在视觉上强调遵循某些条件的某些天或时间段,下面的示例展示了如何在日历中突出显示偶数星期六。isWorkTime函数帮助查找特定日期是否不工作,并检查更复杂的条件,例如一周中的奇数和偶数天,使用task_class突出显示必要的天数。此模板将对甘特图时间轴中所有单元格调用,并返回类名。有了这个模板,就可以在CSS规则中自定义单元格。
与MS Project的兼容性是DHTMLX Gantt一个非常重要的功能,受到许多开发者的喜爱。它允许您导入/导出与项目相关的各种材料,包括工作时间日历,这个例子展示了如何从导入的MS Project文件中设置工作时间设置。这个流行的软件工具通常会在其文件中添加工作日历,在导入MS Project文件的过程中,工作时间设置与任务数据一起出现,可以按照第一个示例中讨论的方式应用这些设置。
由于DHTMLX Gantt还支持从Excel导出/导入,因此您可以使用此功能使用通用Excel文件存储和加载工作时间设置。在服务器端进行转换后,数据以JSON格式发送到甘特图页面,您还可以以JSON格式从数组中获取所需的日期,并使用setWorkTime方法指定工作时间设置。
在DHTMLX Gantt中,可以启用/禁用工作时间,下面的示例展示了如何实现。每个任务有三个日期参数——start_date、end_date和duration,Gantt将所有这些参数用于任务,但end_date具有更高的优先级。当工作时间设置更改时,日期通常保持不变,因此任务的持续时间会发生变化。为了保持持续时间不变,必须根据任务持续时间重新计算结束日期。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:慧都网Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
在处理电子表格时,尤其是在专业和数据导向型环境中,正确设置 Excel 单元格内的数字格式至关重要。本文将介绍如何使用 Spire.XLS for Java 设置 Excel 单元格的数字格式,帮助轻松创建精美且结构清晰的电子表格。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢