项目管理工具dhtmlxGantt甘特图入门教程(十五):从MS项目导入/导出(下)

dhtmlxGantt的MSProject导入/导出服务有大小限制,默认端点为10MB,专用端点为40MB。超过限制可使用特定端点。日期计算差异包括工作时间设置和持续时间单位,可通过调整配置如HoursPerDay,MinutesPerDay及duration_unit来匹配计算结果。
摘要由CSDN通过智能技术生成

这篇文章给大家讲解dhtmlxGantt请求大文件导入的大小限制。 

dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足应用程序的所有需求,是完善的甘特图图表库

DhtmlxGantt正版试用下载(qun 764148812)icon-default.png?t=N176https://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";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值