dhtmlxGantt使用教程:如何从MS Project导出和导入

dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。它允许你创建动态甘特图,并以一个方便的图形化方式可视化项目进度。有了dhtmlxGantt,你可以显示活动之间的依赖关系,显示具有完成百分比阴影的当前任务状态以及组织活动到树结构。

dhtmlxGantt试用版

导出到MS Project

甘特组件允许将链接,任务和资源导出到MS Project中。

要将数据从甘特图导出到MS Project,请执行以下操作:

  • 在页面上包含“ https://export.dhtmlx.com/gantt/api.js”文件以启用在线导出服务:
<script src="codebase/dhtmlxgantt.js"></script><script src="https://export.dhtmlx.com/gantt/api.js"></script> <link rel="stylesheet" href="codebase/dhtmlxgantt.css" type="text/css">
  • 调用exportToMSProject方法以从甘特图导出数据。
gantt.exportToMSProject();

该方法将向远程服务发送请求,该服务将输出XML Project文件或返回url以下载生成的文件。

响应

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

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

汇出设定

所述exportToMSProject()方法作为一个参数的对象与多个属性(所有属性是可选的):

  • name- (string)获得的文件(“gantt.xml”默认)的名称。
gantt.exportToMSProject({    name:'custom.xml'});
  • auto_scheduling-(布尔值)指示导出项目中任务的计划模式。true会将任务标记为自动调度,false会将任务标记为手动调度(默认状态)。
gantt.exportToMSProject({    auto_scheduling: false});
  • skip_circular_links-(布尔值)指示是否将删除循环链接(true-将被删除(默认模式),false-将不会被删除)。
gantt.exportToMSProject({    skip_circular_links: false});
  • project-(object)允许为导出的项目实体设置自定义属性
gantt.exportToMSProject({    project: {        'Author': 'I am!',        'MinutesPerDay': function () {            return gantt.config.hours_per_day * 60;        }    }});

该对象的属性对应于Project实体的适当属性。可以在此处找到受支持属性的列表。这些属性可以包含固定值或在调用export时将执行的函数。

  • tasks-(object)允许为导出的任务项设置自定义属性
gantt.exportToMSProject({   tasks: {       'StartVariance': function (task) {           if (task.startVariance)               return task.startVariance;           else               return 0;       },       'PercentWorkComplete': function (task) {           return (task.progress + 0.1);       },       'Custom': function (task) {           return 'Custom value';       },       'Custom 2': 'My Custom value'   }});

该对象的属性与Task实体的适当属性相对应,这里是受支持属性的列表。这些属性可以包含固定值或函数,在调用export时将为数据集中的每个任务调用这些函数。

  • callback-(函数)如果要接收下载下载生成的XML的URL,则可以使用callback属性。它接收到具有url属性的JSON对象:
gantt.exportToMSProject({    callback: function(res){        alert(res.url);    }});
  • 资源-(数组)允许将资源列表导出到MS Project文件中
gantt.exportToMSProject({  resources: [    {"id":"1","name":"John","type":"work"},    {"id":"2","name":"Mike","type":"work"},    {"id":"3","name":"Anna","type":"work"}  ]});

可能的资源类型为“工作”,“成本”,“材料”。使用任务配置的ResourceAssignments属性指定资源分配:

var users = [// resources  {key:'0', label: "N/A"},  {key:'1', label: "John"},  {key:'2', label: "Mike"},  {key:'3', label: "Anna"}];gantt.exportToMSProject({  resources: users     .filter(function(u){        if(u.key === '0')//skip the default option           return false;        return true;     })     .map(function(u){        return {           id: u.key,           name: u.label,           type: "work"        };     }),  tasks: {     ResourceAssignments: function(task){         return task.user;               }                               }});

所述ResourceAssignments属性被设定为开出任务对象作为参数并返回一个字符串/数值或串/数值的数组的函数:

tasks: {    ResourceAssignments: function(task){        return [task.user, task.office];    }}
  • 服务器-(字符串)请求的API端点。可以与导出服务的本地安装一起使用。默认值为https://export.dhtmlx.com/gantt。
gantt.exportToMSProject({   server:"https://myapp.com/myexport/gantt"});

从MS Project导入

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

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

请求参数为:

  • 文件-MPP或XML MS Project文件
  • 类型-“ msproject-parse”
  • 数据-(可选)带有设置的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);        }     }});

其中file是File的实例,其中应包含XML或MPP Project文件。
gantt.importFromMSProject需要HTML5 File API支持。

响应

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

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

导入设置

设置持续时间单位
要设置预期的持续时间单位,还可以将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

                                                        

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月4日
下一篇 2020年11月4日

相关推荐

发表回复

登录后才能评论