我们使用的是 MPXJ 的 C# 版本,但不是检查现有的项目文件,而是使用它纯粹从代码(从第三方系统中提取数据)生成一个新文件,以便通过MSPDIWriter
.
目标是让在其他系统中报告为已完成的任务显示为 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);
}