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

这篇文章给大家讲解利用dhtmlxGantt导入MS项目。 

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

DhtmlxGantt正版试用下载(qun:764148812)icon-default.png?t=N176https://www.evget.com/product/4213/download

导入MS项目

为了转换XML或MPP MS项目文件,您需要向导出服务发送以下请求:

  • 请求网址 - https://export.dhtmlx.com/gantt
  • 请求方法 - POST
  • 内容类型 - 多部分/表单数据

请求参数为:

  • 文件 - MPP 或 XML MS 项目文件
  • 类型 -“msproject-parse”
  • data - ( 可选 )带有设置的 JSON 字符串
<form action="https://export.dhtmlx.com/gantt" method="POST" 
    enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="hidden" name="type" value="msproject-parse">
    <button type="submit">Get</button>
</form>

或者,您可以使用 客户端API ,如下所示:

gantt.importFromMSProject({
    data: file,
    taskProperties: ["Notes", "Name"],
    callback: function (project) {
        if (project) {
            gantt.clearAll();
            if (project.config.duration_unit) {
                gantt.config.duration_unit = project.config.duration_unit;
            }                    
            gantt.parse(project.data);
        }
     }
});

响应将包含以下结构的 JSON:

{
   data: {},
   config: {},
   resources: [],
   worktime: {}
}
  • 数据-甘特图数据对象 。 每个任务都有以下属性:id 、 open 、 parent 、 progress 、 start_date 、 text 、 resource 。 日期以“%Y-%m-%d %H:%i”格式进行字符串化。
  • config - 具有从项目文件中检索的设置的甘特图 配置 对象。
  • resources - 一个对象数组(每个对象具有以下属性:{ id:string, name:string, type:string },表示项目文件中的资源列表。
  • worktime - 包含项目日历中的工作时间设置的对象。

设置持续时间单位

要设置预期的持续时间单位,也可以将 durationUnit (“分钟”、“小时”、“天”、“周”、“月”、“年”)字符串发送到服务器。

<form action="https://export.dhtmlx.com/gantt" method="POST" 
    enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="hidden" name="type" value="msproject-parse">
    <input type="hidden" name="data" 
        value="{ \"durationUnit\": \"hour\" }" />
    <button type="submit">Get</button>
</form>

或者设置以下格式:

gantt.importFromMSProject({
    data: file,
    durationUnit: "hour",
    callback: function(project){}
});

获取项目属性

要获取项目字段,可以将带有一组必要字段的projectProperties输入发送到服务器。它提取项目实体的任意属性进入输出的配置属性。 这是支持的属性列表。

projectProperties - 指定应放入响应中的项目属性数组。

<form action="https://export.dhtmlx.com/gantt" method="POST" 
    enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="hidden" name="type" value="msproject-parse">
    <input type="hidden" name="data" 
        value="{ \"projectProperties\": [\"Author\", \"Title\"] }" />
    <button type="submit">Get</button>
</form>

或者设置以下格式:

gantt.importFromMSProject({
    data: file,
    durationUnit: "hour",
    projectProperties: ["Author", "Title"],
    callback: function(project){
        var config = project.config;
        alert(config.$custom_properties.Author);
    }
});

获取任务属性

要获取任务字段, taskProperties可以将带有一系列必要字段 输入发送到服务器。 它提取任务实体的任意属性。 以下是支持的属性列表:

taskProperties - 指定要导入的附加任务属性数组。

<form action="https://export.dhtmlx.com/gantt" method="POST" 
    enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="hidden" name="type" value="msproject-parse">
    <input type="hidden" name="data" 
        value="{ \"taskProperties\": [\"Contact\", \"Priority\"] }" />
    <button type="submit">Get</button>
</form>

或者设置以下格式:

gantt.importFromMSProject({
    data: file,
    durationUnit: "hour",
    taskProperties: ["Contact", "Priority"],
    callback: function(project){
        var config = project.config;
        alert(config.$custom_properties.Author);
        gantt.parse(project.data);
    }
});
gantt.attachEvent("onTaskLoading", function(task) {
    if (task.$custom_data) {
        task.contact = task.$custom_data["Contact"];
        task.priority = task.$custom_data["priority"];
        delete task.$custom_data;
    }
    return true;
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值