返回顶部

收藏

java 读取 ms project by MPXJ

更多
ProjectReader reader = new MPPReader();
  ProjectFile project = reader.read(Test.class.getResource("/bss4.mpp").getPath());
  t.listHierarchy(project);

public void listHierarchy(ProjectFile file){
    for (Task task : file.getChildTasks()){
    System.out.println("WBS: " + task.getWBS());
       System.out.println("任务名称: " + task.getName());
       System.out.println("工期: " + task.getDuration().toString());
       System.out.println("计划开始时间: " + (task.getStart() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getStart())));
       System.out.println("计划完成时间: " + (task.getFinish() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getFinish())));
       System.out.println("实际开始时间: " + (task.getActualStart() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getActualStart())));
       System.out.println("实际完成时间: " + (task.getActualFinish() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getActualFinish())));
       StringBuilder resourceName = new StringBuilder();
       for (ResourceAssignment assignment : task.getResourceAssignments()){
          Resource resource = assignment.getResource();
          if (resource != null){
           resourceName.append(resource.getName()+" - " + resource.getPeakUnits() + ",");
          }
       }
       System.out.println("资源名称: " + resourceName.toString());
       listHierarchy(task, " ");
    }
    System.out.println();
}
private void listHierarchy(Task tasks, String indent){
    for (Task task : tasks.getChildTasks()){
    System.out.println("WBS: " + task.getWBS());
       System.out.println("任务名称: " + task.getName());
       System.out.println("工期: " + task.getDuration().toString());
       System.out.println("计划开始时间: " + (task.getStart() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getStart())));
       System.out.println("计划完成时间: " + (task.getFinish() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getFinish())));
       System.out.println("实际开始时间: " + (task.getActualStart() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getActualStart())));
       System.out.println("实际完成时间: " + (task.getActualFinish() == null ? "NA" : new SimpleDateFormat("yyyy-MM-dd").format(task.getActualFinish())));
       StringBuilder resourceName = new StringBuilder();
       for (ResourceAssignment assignment : task.getResourceAssignments()){
          Resource resource = assignment.getResource();
          if (resource != null){
           resourceName.append(resource.getName()+" - " + assignment.getUnits()  + ",");//assignment.getUnits()获得单位百分比
          }
       }
       System.out.println("资源名称: " + resourceName.toString());
       listHierarchy(task, indent + " ");
    }
}
//该片段来自于http://outofmemory.cn

标签:java,基础

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 糖果 发表 2015-08-03 20:25:16 逆向基础(十三) JAVA (三)
  2. 博主 发表 2013-03-12 14:17:00 Java基础学习之Enum
  3. Terry Zhang 发表 2014-04-18 05:19:53 [NIO.2] 编写一个文件移动应用
  4. Terry Zhang 发表 2014-05-13 06:28:25 [集合框架] SortedMap 接口
  5. 逍遥冲 发表 2014-02-16 15:32:11 Java8新特性Date和Time
  6. root 发表 2015-04-26 02:40:02 Java 基础:认识&理解关键字 native 实战篇
  7. 博主 发表 2013-03-22 16:26:00 Java基础知识之泛型
  8. Terry Zhang 发表 2014-05-04 12:29:21 [集合框架] Queue 接口
  9. 博主 发表 2013-03-27 17:01:00 Java基础知识之Annotation
  10. Terry Zhang 发表 2014-04-20 15:36:04 [正则] 预定义字符类型
  11. 博主 发表 2017-04-04 08:28:15 Java注解的基础与高级应用
  12. Terry Zhang 发表 2014-05-03 06:47:05 [集合框架] Deque 接口

发表评论