【问题标题】:MPXJ C# MSPID: Mark task as done (100% complete) [closed]MPXJ C# MSPID:将任务标记为已完成(100% 完成)[关闭]
【发布时间】:2019-09-03 09:59:51
【问题描述】:

我们使用的是 C# 版本的 MPXJ,但我们不是检查现有的项目文件,而是使用它纯粹从代码(从第三方系统中提取数据)生成一个新文件,以便通过 @987654321 导入到项目中@。

目标是让在其他系统中报告为已完成的任务显示为 100% 完成,并且当 XML 加载到 Project 中时,它们旁边的 ✔ 复选标记会显示在甘特视图中。仅当分配给任务的总持续时间为零天时,这才按预期工作;对于 Project 打开任务的完成百分比设置为 0% 的任何其他持续时间。

我们的开发人员不是项目人员,因此我们不清楚哪些属性会影响此行为:

Task childTask = parent.AddTask();
childTask.Name = sourceItem.Title;
Duration duration = Duration.getInstance(sourceItem.Days, TimeUnit.DAYS);
childTask.PercentageComplete = new java.lang.Integer(childItem.PercentageComplete);
childTask.PercentageWorkComplete = childTask.PercentageComplete;

ResourceAssignment assignment = childTask.AddResourceAssignment(resource);
assignment.Work = duration;
assignment.RemainingWork = duration;
assignment.percentageWorkComplete = childTask.PercentageComplete;

childTask.EffortDriven = false;
childTask.Priority = childItem.Priority;
childTask.Duration = duration;
childTask.BaselineDuration = duration;
if (childItem.PercentComplete == 100)
{
    childTask.RemainingWork = Duration.getInstance(0, TimeUnit.DAYS);
}

【问题讨论】:

    标签: c# mpxj


    【解决方案1】:

    sample code 完成了从头开始创建文件的步骤,其中包含未开始、部分完成和已完成任务的各种组合,无论是否分配资源。有一个C# version,但我必须承认我没有让两者保持一致。 Java 版本可能更完整,希望它应该相当简单地获得一个工作 C# 版本。

    我建议从这些示例开始并首先从中生成 MSPDI 文件,验证在将文件导入 MS Project 时您是否获得了预期的结果。希望您随后能够根据示例文件中采用的方法更新您的代码。

    需要注意的一点是,最近对 MSPDI 生成进行了一些改进,以使完成百分比正确显示,因此值得验证您使用的是最新版本的 MPXJ(7.9.2 在写作时间)。

    【讨论】:

      猜你喜欢
      • 2014-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 2017-11-01
      相关资源
      最近更新 更多