Jacob 操作 MsProject - 建立任务结构

来源:互联网 发布:下载软件 纳米盒子 编辑:程序博客网 时间:2024/05/16 09:45
/** * Create task structure, return the indent of last one * @param task * @param mpOp * @return */private int addTaskToProject(Task task, MPPFileOperation mpOp, Map<String, ResourceCOM> resourcesMap, boolean isRoot) {int level = 1;if (task == null) {return level;}List<Task> subTasks = task.getSubTasks();if (subTasks == null || subTasks.isEmpty()) {// create simple task if there is no childrenlevel = 0;} else {// multitask if there are sub tasks.level = 1;// DSFint times = -1;for (int i = 0; i < subTasks.size();i++) {Task subTask = subTasks.get(i);Dispatch subTaskDispatch = Dispatch.invoke(mpOp.getTasks(), "Add", Dispatch.Method, new Object[]{subTask.getName()}, new int[]{1}).toDispatch();// turn it back if finishif (times != -1) {for (int t = 0;t < times;t++) {Dispatch.invoke(subTaskDispatch, "OutlineOutdent", Dispatch.Method, new Object[]{}, new int[]{1});}times = 0;}TaskCOM subTaskCOM = new TaskCOM(subTaskDispatch, mpOp.getMsProjApp());renderTask(subTask, subTaskCOM, resourcesMap);// not root & not sub taskif (!isRoot && times != 0) {Dispatch.invoke(subTaskDispatch, "OutlineIndent", Dispatch.Method, new Object[]{}, new int[]{1});}times = addTaskToProject(subTask, mpOp, resourcesMap, false);}// return actual level// if times == 0,表示经过OutlineOutdent过,已经恢复,否则times将带回滚level信息level+=times;}return level;}

原创粉丝点击