这篇文章给大家讲解dhtmlxGantt请求大文件导入的大小限制。
dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足应用程序的所有需求,是完善的甘特图图表库
DhtmlxGantt正版试用下载(qun 764148812)https://www.evget.com/product/4213/download
请求大文件导入的大小限制
MSProject导出/导入服务有两个 API 端点:
- https://export.dhtmlx.com/gantt - 服务于所有导出方法( exportToPDF 、 exportToPNG 、 exportToMSProject 等)的默认端点。 最大请求大小为 10 MB 。
- https://export.dhtmlx.com/gantt/project - 专用于 MS Project 服务的端点( 仅限 exportToMSProject / importFromMSProject )。 最大请求大小:40 MB 。
端点可以由导出配置对象的 server 属性指定:
gantt.importFromMSProject({ server:"https://export.dhtmlx.com/gantt", data: file, callback: function(project){ // some logic } });
如果未指定端点, https://export.dhtmlx.com/gantt 则默认使用 。 以下调用等效于上述调用:
gantt.importFromMSProject({ data: file, callback: function(project){ // some logic } });
为了导出或导入超过 4MB 限制的大型项目,可以使用第二个端点:
gantt.importFromMSProject({ server:"https://export.dhtmlx.com/gantt/project", data: file, callback: function(project){ // some logic } });
它允许发送最大 40MB 的请求,并支持 MS Project 导出和导入。 它只能用于 MS Project 导出。
任何其他方法,例如 gantt.exportToPDF({server:"https://export.dhtmlx.com/gantt/project"}) 应该返回服务器错误。
dhtmlxGantt vs MS Project 时间计算
dhtmlxGantt 和 MS Project 中日期计算的工作方式存在根本差异,在某些情况下会导致不同的结果。
这些差异也因甘特图中使用的配置组合而异。 但是您可以更改可能影响计算结果的甘特图设置:
之间的时长转换存在差异 1. 首先,dhtmlxGantt 和MS Project 。
1、可以通过指定 HoursPerDay 和 MinutesPerDay来绕过它: 当您将甘特图导出到 MS Project 时
gantt.exportToMSProject({ project: { HoursPerDay: function () { return 24; }, MinutesPerDay: function () { return 24 * 60; } } });
2. 其次,您的项目可能禁用了 work_time 设置:
gantt.config.work_time = false;
请注意,即使禁用了工作时间计算,甘特图仍然在配置中具有默认日历设置(每天 8 小时,周一至周五工作周)。 即使在甘特图中禁用了工作时间,我们的导出客户端也会始终将默认日历发送到 MS Project。 这就是为什么 MS Project 以不同方式计算任务持续时间的原因。
作为一种解决方法,您可以清除默认日历,因此即使将其发送到 MS Project,任务持续时间也将以与甘特图相同的方式计算:
gantt.setWorkTime({day:0, hours:[0,24]}); gantt.setWorkTime({day:1, hours:[0,24]}); gantt.setWorkTime({day:2, hours:[0,24]}); gantt.setWorkTime({day:3, hours:[0,24]}); gantt.setWorkTime({day:4, hours:[0,24]}); gantt.setWorkTime({day:5, hours:[0,24]}); gantt.setWorkTime({day:6, hours:[0,24]});
3. 此外,如果您将 gantt.config.duration_unit 指定为“day”,您可能会注意到汇总项日期之间的差异:
gantt.config.duration_unit = "day";
在这种情况下,甘特图会将持续时间四舍五入到总天数。 但是 MS Project 不会这样做,并且会显示分数持续时间。 例如,顶级项目在甘特图中的持续时间为 439,而在 MS Project 中的持续时间为 438.58。
唯一的解决方法是将 duration_unit 切换为小时单位:
gantt.config.duration_unit = "hour";