2010-09-21 22 views
0

Je travaille avec framework MPXJ pour générer un fichier XML avec l'importation dans le projet 2007. J'ai couru à attribuer des problèmes, mais je ne peux pas trouver une réponse à ce qui suit.MPXJ Set 24 heures calendrier sur la ressource

J'ai un travail fixe et la durée sur une tâche, mais quand j'ajouter une ressource et l'importer dans le projet que je reçois un message d'erreur:

« La ressource est affectée en dehors des dates originales pour la tâche 2 dans le projet La durée de cette tâche à durée fixe va changer pour s'adapter à l'affectation des ressources ".

Le projet modifie ensuite la valeur de travail et/ou de durée. ce n'est pas ce que je veux. Je veux que la ressource utilise le calendrier de 24 heures, mais je ne peux pas sembler attacher le calendrier standard du projet 2007, donc j'ai pensé laisse faire mon propre calendrier de 24 heures et attacher cela à la ressource. maintenant je ne peux pas sembler mettre l'heure 0:00:00 à 0:00:00 dans une journée de travail. Quiconque connaît une solution à un obtient le jeu de calendrier par défaut de 24 heures à la ressource de faire le mien.

Répondre

2

Le code ci-dessous illustre comment créer un calendrier de 24 heures. Je m'excuse de la façon dont chaque jour est mis en place, j'ai besoin d'améliorer le fonctionnement de la classe du jour afin qu'elle soit plus facile à itérer.

Le point clé à noter est que l'instance DateRange est configurée pour démarrer à 00:00 heures à une date et terminer à 00:00 heures le jour suivant. La date réelle utilisée n'est pas pertinente, le calendrier n'utilise que l'élément de date de la date.

Espérons que cela a du sens!

// 
    // 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); 
+0

Nous l'avons bien travaillé mais merci de toute façon. – LordSauron