Domanda

Sto lavorando con quadro MPXJ per generare un file XML con i importazione in Project 2007. Ho corso per assegnare di problemi, ma io non riesco a trovare una risposta alla seguente.

ho un lavoro fisso e durata su un compito, ma quando aggiungo una risorsa e importarlo nel progetto ottengo un messaggio di errore:

"La risorsa è assegnato al di fuori delle date originali per il task 2 nel progetto. La durata di questo compito a durata determinata cambierà per accogliere l'assegnazione di risorse".

Progetto poi cambia il valore del lavoro e o la durata. questo non è quello che voglio. Voglio la risorsa a utilizzare il calendario di 24 ore, ma io non riesco a fissare il calendario standard Project 2007, così ho pensato lascia fare il mio proprio calendario 24 ore e allegare che a risorsa. ora io non riesco a impostare il 0:00:00-00:00:00 tempo in un giorno di lavoro.

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);

Uno sa di una soluzione ad uno ottenere il default del calendario insieme 24 ore per la risorsa di fare il mio.

È stato utile?

Soluzione

Il codice di seguito viene illustrato come creare un calendario di 24 ore. Le mie scuse per il modo prolisso ogni giorno è impostato, ho bisogno di migliorare il modo in cui la classe Day funziona in modo che sia più facile da iterare.

Il punto chiave da notare è che l'istanza DateRange è impostato per iniziare alle ore 00:00 su una data, e terminano alle ore 00:00 il giorno successivo . La data effettiva utilizzata è irrilevante, il calendario è solo utilizzando l'elemento tempo della data.

La speranza che ha senso!

  //
  // 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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top