获取层级的project任务  参考

启动javabridge

java -jar JavaBridge.jar SERVLET_LOCAL:8089

1.读取mpp文件

    $file_path = "/new.mpp";
$file_path = getcwd() . $file_path;
if (!file_exists($file_path)) {
var_dump("文件不存在");
return;
}
$mppRead = new Java('net.sf.mpxj.mpp.MPPReader');
try {
$Filecontent = $mppRead->read($file_path);
} catch (Exception $e) {
var_dump($e);
return;
}

2.获取任务

获取project的任务

$allTasks   = $Filecontent->getChildTasks();
$tasks_size = java_values($allTasks->size());
if($tasks_size){
getChildren($allTasks[0]);
}

说明:

  $Filecontent->getChildTasks()获取的是文件,即$allTasks[0]为project文件,再向下是任务

获取任务的基本信息及获取任务流

function getChildren($task)
{
$child = $task->getChildTasks();
$tasks_size = java_values($child->size());
$data = array();
for ($i = ; $i < $tasks_size; $i++) {
$tmp = getResource($child[$i]);
$items = array();
$items['id'] = $child[$i]->getID() . '';
$items['name'] = $child[$i]->getName() . '';
//前置任务
$prev_task = getProcessors($child[$i]);
if ($prev_task) {
$items['prev_task'] = $prev_task;
}
//获取下一级任务
$children = getChildren($child[$i]);
if ($children) {
$items['children'] = $children;
}
$data[] = $items;
}
return $data;
}

获取任务流(即前置任务)具体实现

function getProcessors($task)
{
$items = array();
$rs = '';
$predecessorLinks = $task->getPredecessors();
$size = java_values($predecessorLinks->size());
$data = array();
for ($i = ; $i < $size; $i++) {
$tmp = $predecessorLinks[$i]->getTargetTask()->getUniqueID() . '';
if ($tmp) {
$items[] = $tmp;
}
}
if ($items) {
$rs = implode(',', $items);
}
return $rs; }

php解析mpp文件中的前置任务的更多相关文章

  1. php解析mpp文件中的多级任务

    获取层级的project任务  参考 启动javabridge java -jar JavaBridge.jar SERVLET_LOCAL:8089 1.读取mpp文件 $file_path = & ...

  2. php解析mpp文件中的资源

    获取层级的project任务  参考 启动javabridge java -jar JavaBridge.jar SERVLET_LOCAL: 1.读取mpp文件 $file_path = " ...

  3. XML:使用DOM技术解析xML文件中的城市,实现select级联选择

    中国的城市xml格式:cities.xml <?xml version="1.0" encoding="utf-8"?> <china> ...

  4. php解析mpp文件

    php没有找到相应的包 Java的mpxj可以实现 所以借助JavaBridge.jar 1.安装jdk,设置环境变量(我的版本jdk1.8.0_131) 2.下载mpjx 在http://www.m ...

  5. awk 解析maps文件中的地址

    maps文件一般是这个样子: pi@raspberrypi:~ $ sudo cat /proc//maps 54b88000-54c8d000 r-xp b3: /lib/systemd/syste ...

  6. iOS如何解析crash文件中的地址

    1.目录中存放app文件 2.打开文件 3.执行命令otool -arch arm64 -l ./QQStock  | grep -B 1 -A 10 "LC_SEGM" | gr ...

  7. python解析pcap文件中的http数据包

    使用scapy.scapy_http就可以方便的对pcap包中的http数据包进行解析 scapy_http可以在https://github.com/invernizzi/scapy-http下载, ...

  8. Maven让资源文件处理插件能够解析资源文件中的Maven属性

    <build> <resources> <resource> <directory>${project.basedir}/src/main/resour ...

  9. Java中使用DOM4J来生成xml文件和解析xml文件

    一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...

随机推荐

  1. springcloud配置中心客户端配置遇到的坑

    1. 出错信息如下: 在启动配置中心的客户端时,报以下错误信息: Caused by: java.lang.IllegalArgumentException: Could not resolve pl ...

  2. java中反向转义org.apache.commons.lang3.StringEscapeUtils.unescapeJava

    工具类中包含类反向转义的方法: eorderHistory.setSubPrintTemplates(StringEscapeUtils.unescapeJava(eorderHistory.getS ...

  3. FileChannel类的理解和使用

    FileChannel类的理解和使用(java.nio.channels.FileChannel) 知识点: 1.FileChannel类及方法理解:2.普通输入输出流复制文件:3.FileChann ...

  4. 【C】——可变参数

    写代码之前要先介绍一下可变参数的备用知识: C函数要在程序中用到以下这些宏: void va_start( va_list arg_ptr, prev_param ); type va_arg( va ...

  5. spring 加载jar包中的配置文件

    package com.xxx.ssptsppt.dataexchange.utils; import com.xxx.maybee.engine.utils.FileUtil; import com ...

  6. viewpager+fragment滑动切换卡顿问题

    最近在做项目的时候遇到个问题,viewpager中的fragment添加使用listview添加数据后出现滑动卡顿,造成用户体验感极差.找了很久的资料,也试了很多大方法,在这里给大家分享下: 1.添加 ...

  7. 自然语言交流系统 phxnet团队 创新实训 个人博客 (八)

    今天想测试一下“庖丁”分词的效果,编写了一个测试小程序,从文件中读入文本,并将分词结果显示到控制台. 环境平台:Win7+eclipse 过程如下: 1.编辑paoding-analysis.jar中 ...

  8. phpc.sinaapp.com 加密的解密方法

    很简单,用类似phpjm的解密方式,替换掉_inc.php中最后一个return中的eval为print就出来了. http://www.cnblogs.com/lonelyxmas/p/458285 ...

  9. 00-02.PHP 网站假设 之 学习PHP语法 [James建站]

    PHP 手册 Stig Sæther Bakken Alexander Aulbach Egon Schmid Jim Winstead Lars Torben Wilson Rasmus Lerdo ...

  10. SAP,Oracle和国产系统的比较心得

      以下这个心得感同身受,小生如今好歹也做过十几家企业,包括民企,中大型外企,国企的项目, 都经历了TMD的从金蝶用友切换到Oracle, SAP 每当上线的时候 总有用户跳出来比较说 SAP,Ora ...