0

我正在使用 MPXJ 框架生成一个 XML 文件,并将其导入项目 2007。我遇到了很多问题,但似乎找不到以下问题的答案。

我的任务有固定的工作和持续时间,但是当我添加资源并将其导入项目时,我收到一条错误消息:

“资源在项目中任务 2 的原始日期之外分配。此固定工期任务的工期将更改以适应资源分配”。

Project 然后更改工时和/或工期值。那不是我想要的。我希望资源使用 24 小时日历,但我似乎无法附加项目 2007 标准日历,所以我想让我自己制作 24 小时日历并将其附加到资源。现在我似乎无法在工作日将 0:00:00 设置为 0:00:00 时间。

ProjectCalendar calendar = projectFile.addResourceCalendar();
calendar.setName("24 Hours");
calendar.setUniqueID(Count);
calendar.setWorkingDay(Day.MONDAY, true);
calendar.setWorkingDay(Day.TUESDAY, true);
calendar.setWorkingDay(Day.WEDNESDAY, true);
calendar.setWorkingDay(Day.TUESDAY, true);
calendar.setWorkingDay(Day.FRIDAY, true);

Resource resource = projectFile.addResource();
resource.setUniqueID(Count);
resource.setName("Painters");
resource.setResourceCalendar(calendar);

任何知道解决方案的人都可以将默认的 24 小时日历设置为 make my own 的资源。

4

1 回答 1

2

下面的代码说明了如何创建 24 小时日历。我为每天设置的冗长方式道歉,我需要改进 Day 类的工作方式,以便更容易迭代。

需要注意的关键点是 DateRange 实例设置为在某一天的 00:00 开始,并在第二天的 00:00 结束。使用的实际日期无关紧要,日历仅使用日期的时间元素。

希望这是有道理的!

  //
  // Use this date formatter to make it simple to specific the range
  // start and wne dates
  //
  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");

  //
  // This is an immutable date range, so we can share it without
  // worrying about it being changed
  //
  DateRange range = new DateRange(format.parse("2000-01-01 00:00"), format.parse("2000-01-02 00:00"));

  //
  // Add the calendar and name it
  //
  ProjectCalendar test = file.addBaseCalendar();
  test.setName("Test 24 Hours");

  //
  // Mark each day as working
  //
  test.setWorkingDay(Day.SUNDAY, true);
  test.setWorkingDay(Day.MONDAY, true);
  test.setWorkingDay(Day.TUESDAY, true);
  test.setWorkingDay(Day.WEDNESDAY, true);
  test.setWorkingDay(Day.THURSDAY, true);
  test.setWorkingDay(Day.FRIDAY, true);
  test.setWorkingDay(Day.SATURDAY, true);

  //
  // Add a working hours range to each day
  //
  ProjectCalendarHours hours;
  hours = test.addCalendarHours(Day.SUNDAY);
  hours.addRange(range);
  hours = test.addCalendarHours(Day.MONDAY);
  hours.addRange(range);
  hours = test.addCalendarHours(Day.TUESDAY);
  hours.addRange(range);
  hours = test.addCalendarHours(Day.WEDNESDAY);
  hours.addRange(range);
  hours = test.addCalendarHours(Day.THURSDAY);
  hours.addRange(range);
  hours = test.addCalendarHours(Day.FRIDAY);
  hours.addRange(range);
  hours = test.addCalendarHours(Day.SATURDAY);
  hours.addRange(range);
于 2011-07-05T17:08:28.457 回答