mpxj项目c#资源分配,具有固定的持续时间

时间:2017-03-10 01:39:20

标签: task ms-project mpxj

我正在使用mpxj库来构建MS Project计划。我想将资源分配给具有固定持续时间的任务,以便每天显示偶数个小时。例如,如果任务是3天,并且有9个小时的工作,项目将每天显示3个小时。

我尝试了一切,但没有设法找到解决方案,这是我的代码:

location = /gonecontent-address {
  error_page 404 =410 $scheme://ourdomain/ourmovedpage.html;
}

1 个答案:

答案 0 :(得分:1)

您需要设置资源分配的units属性,以减少资源每天的可用时间。这是一个例子:

Resource assignedResource = file.addResource();
assignedResource.Name = "Assigned Resource";

Task task = file.addTask();
task.Name = "StackOverflow Example Task";
task.Start = DateTime.Parse("2017-03-13").ToJavaDate();
task.Duration = Duration.getInstance(3, TimeUnit.DAYS);
task.Work = Duration.getInstance(15, TimeUnit.HOURS);
task.RemainingWork = Duration.getInstance(15, TimeUnit.HOURS);

double hoursPerDay = 8.0;
double hoursWorkedPerDay = 5.0;

ResourceAssignment resourceAssignment = task.addResourceAssignment(assignedResource);
resourceAssignment.Start = DateTime.Parse("2017-03-13").ToJavaDate();
resourceAssignment.Work = Duration.getInstance(15, TimeUnit.HOURS);
resourceAssignment.RemainingWork = Duration.getInstance(15, TimeUnit.HOURS);
resourceAssignment.Units = NumberHelper.getDouble((hoursWorkedPerDay / hoursPerDay) * 100.0);

这会创建一个持续3天的任务,但每天只进行5个小时的工作。

关键部分是计算units属性的值。这里我们假设工作时间为8小时(您可以将其设置为项目的一部分)。单位是一个百分比,所以我们计算我们想要工作的那一天的分数(在这种情况下是5小时/ 8小时)并乘以100给我们一个百分比。