Appearance
informat.mpp Mpp文件
概述
使用informat.mpp
执行mpp文件的读写操作
createProjectFile
创建Mpp项目文件对象
javascript
informat.mpp.createProjectFile()
返回值
类型为MppProjectFile
read
从本地沙盒中读取mpp文件,如果文件不存在将会抛出异常
javascript
informat.mpp.read(file)
参数 | 类型 | 描述 |
---|---|---|
file | String | app的沙盒环境中的MPP文件地址 |
返回值
类型为MppProjectFile
示例
js
let projectFile = informat.mpp.read('软件开发.mpp');
var resourceAssignments = projectFile.getResourceAssignments();
resourceAssignments.list().forEach(as => {
if (as.getTask() == null || as.getResource() == null) {
return;
}
var taskId = as.getTask().getID();
var resourceName = as.getResource().getName();
console.log('taskId:' + taskId + ',resourceName:' + resourceName);
});
var tableContainer = projectFile.getTables();
if (tableContainer != null && tableContainer.size() > 0) {
var columns = tableContainer.list().get(0).getColumns();
columns.forEach(c => {
console.log('column:' + c.getTitle());
});
}
var tasks = projectFile.getTasks();
tasks.list().forEach(task => {
console.log('taskId:' + task.getID() + ',taskName:' + task.getName());
});
write
将projectFile数据写入xml文件
js
informat.mpp.write(projectFile, targetFile, config)
参数 | 类型 | 描述 |
---|---|---|
projectFile | MppProjectFile | project文件对象 |
targetFile | String | app的沙盒环境中的文件地址 |
config | MppWriterConfig | 配置文件 |
js
var file = informat.mpp.createProjectFile();
var pmResource = file.addResource();
pmResource.setName("项目经理");
var devResource = file.addResource();
devResource.setName("开发人员");
var customFieldContainer = file.getCustomFields();
var field = customFieldContainer.getOrCreate('TEXT1');
field.setAlias("MyCustomField");
var task1 = file.addTask();
task1.setName("root");
task1.setTaskMode('MANUALLY_SCHEDULED');
task1.setStart(new Date());
task1.setFinish(new Date(2024, 3, 1));
task1.setText(1, '测试1')
task1.addResourceAssignment(pmResource);
task1.addResourceAssignment(devResource);
//
var task12 = task1.addTask();
task12.setName("任务A");
task12.setTaskMode('AUTO_SCHEDULED');
task12.setStart(new Date());
task12.setFinish(new Date(2024, 2, 1));
task12.setText(1, "text1");
task12.addResourceAssignment(devResource);
//
task1.addPredecessor(task12, null, null);
task12.addPredecessor(task1, null, null);
//
var task2 = file.addTask();
task2.setName("任务B");
task2.setTaskMode('MANUALLY_SCHEDULED');
task2.setStart(new Date(2024, 4, 1));
task2.setFinish(new Date(2024, 5, 1));
//
var config = {
microsoftProjectCompatibleOutput: false,
splitTimephasedAsDays: true,
writeTimephasedData: false,
saveVersion: "Project2016"
}
informat.mpp.write(file, 'output.xml', config);