- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在使用 mpxj 库更改 java 中的任务周期时遇到问题。我在 MS Project 2016 中创建了简单的项目结构,如下所示:
这就是我尝试更改 Java 持续时间的方法:
for (int i = 0; i < allTasks.size(); i++){
if (allTasks.get(i).getID() == 3){
allTasks.get(i).setDuration(Duration.getInstance(3, TimeUnit.DAYS));
}
}
我最后将文件保存为 XML,但当我在 MS Project 2016 中打开它时,没有任何更改。有什么建议吗?
P.S 我尝试更改剩余工期,并且在创建任务期间甚至没有在 MS Project 中设置工作。
最佳答案
这是一个非常有趣的问题。问题的核心在于,Microsoft Project 实际上为每项任务至少分配了一个资源,只是当您没有“真正的”资源分配时,该任务的所有工作都会分配给“无人”资源。如果您查看 Microsoft Project 生成的 XML,您将看到 <Assignment>
标签,资源显示为 <ResourceUID>-65535</ResourceUID>
,这是“空”资源(真实资源在这里将具有正整数值)。
为了修改文件以使任务的持续时间增加到 3 天,您需要更改此作业的“剩余工时”属性。
这是为您执行此操作的代码片段:
// Read the sample project
ProjectFile project = new UniversalProjectReader().read("so-duration-question.xml");
// Find the task we want to update
Task task = project.getTaskByID(Integer.valueOf(3));
// With this sample data we know we only have one resource assignment
ResourceAssignment assignment = task.getResourceAssignments().get(0);
// Set remaining work seems to be the driver for MS Project
assignment.setRemainingWork(Duration.getInstance(3, TimeUnit.DAYS));
// Write our modified file
new MSPDIWriter().write(project, "so-duration-answer.xml");
显然,您的实际代码需要检查您正在修改的任务实际存在哪些资源分配。
关于java - 如何更改 mpxj 中的任务持续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49393694/
我正在通过 MPXJ 库导出 MS Project 中的项目,我有一个问题: 如何将特定日期周六(或周日)设置为工作日而不是周末? (在 ProjectCalendar 或其他地方) 例如2014年1
我在使用 mpxj 库更改 java 中的任务周期时遇到问题。我在 MS Project 2016 中创建了简单的项目结构,如下所示: Project structure 这就是我尝试更改 Java
在连接到 Microsoft Project 文件时,我很难找到使用 MPXJ 库的任何 C# 代码示例。有人可以发布一个片段来演示如何将 .mpp 文件中的表格内容写入屏幕吗? 任何链接/引用的奖励
我想使用 MPXJ 从 MS Project 中提取一段时间内的计划工作。有谁知道如何通过 API 获取这些数字?我找不到任何合适的方法来执行此操作。 (具体场景:我想画一个图表,y轴是计划工作,x轴
我是 MPXJ 的新手,想了解有关 MPXJ 的更多信息,但我在 google 上搜索发现缺乏相关的示例或教程,有相关的示例吗?我将不胜感激 最佳答案 看看 "getting started"网站上的
当我尝试在 java 中使用 mpxj 读取 asta(.pp) 文件时,我收到如下所示的错误(尽管我已经添加了下面所示的代码): org.xerial sqlite-jdbc
我已经基于来自 MPXJ 库分发的 MpxjCreate 示例创建了一个应用程序。我创建了几个任务,其中一些带有子任务,并使用 Task.setStart()/Task.setFinish()用于设置
例如,我想计算 2 个 Activity 之间的持续时间差。 Activity 1 持续 13 天。 Activity 2 为期 5 天。我知道 Microsoft Project 在使用持续时间进行
我正在使用 MPXJ Java Api 在 Java 中创建、读取 Microsoft Project Planner 文件..我在执行代码时发现了一个特定问题..代码执行文件已创建...我的问题是此
我在 .NET 中使用 MPXJ 库来解析 MS 项目 (MPP) 文件,它运行良好。我遇到的一个问题是尝试将任务开始日期和完成日期转换为 .NET DateTime 以用于我的数据模型。 我正在执行
我正在尝试使用 C# MVC3 中的 .net 版 MPJX 读取 MS 项目文件。我正在使用 jQuery uploadify 将文件上传到我的 Controller 。 现在,我的问题是如何从我的
我是一名优秀的程序员,十分优秀!