MPXJ установил 24-часовой календарь на ресурс - PullRequest
0 голосов
/ 21 сентября 2010

Я работаю с платформой MPXJ, чтобы сгенерировать XML-файл и импортировать его в проект 2007. Я столкнулся с проблемой, но не могу найти ответ на следующие вопросы.

Iимеют фиксированную работу и продолжительность для задачи, но когда я добавляю ресурс и импортирую его в проект, я получаю сообщение об ошибке:

"Ресурс назначается вне исходных дат для задачи 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-часового календаря.на ресурс сделать мой собственный.

1 Ответ

2 голосов
/ 05 июля 2011

Код ниже показывает, как создать 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);
...