MPXJ Set 24 Ore Calendario sul Resource
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.
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);